87 lines
2.5 KiB
Go
87 lines
2.5 KiB
Go
package versions_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/grafana/grafana/pkg/build/daggerbuild/versions"
|
|
)
|
|
|
|
func TestOptsFor(t *testing.T) {
|
|
t.Run("v9.3.0 should not have combined executables", func(t *testing.T) {
|
|
opts := versions.OptionsFor("v9.3.0")
|
|
|
|
if opts.CombinedExecutable.IsSet != true {
|
|
t.Errorf("CombinedExecutable should be set for v9.3.0")
|
|
}
|
|
if opts.CombinedExecutable.Value != false {
|
|
t.Errorf("CombinedExecutable should be false for v9.3.0")
|
|
}
|
|
})
|
|
t.Run("v9.3.0 should not have packaging/autocomplete", func(t *testing.T) {
|
|
opts := versions.OptionsFor("9.3.0")
|
|
|
|
if opts.Autocomplete.IsSet != true {
|
|
t.Errorf("Autocomplete should be set for v9.3.0")
|
|
}
|
|
if opts.Autocomplete.Value != false {
|
|
t.Errorf("Autocomplete should be false for v9.3.0")
|
|
}
|
|
})
|
|
t.Run("v9.3.0-beta.1 should not have packaging/autocomplete", func(t *testing.T) {
|
|
opts := versions.OptionsFor("v9.3.0-beta.1")
|
|
|
|
if opts.Autocomplete.IsSet != true {
|
|
t.Errorf("Autocomplete should be set for v9.3.0-beta.1")
|
|
}
|
|
if opts.Autocomplete.Value != false {
|
|
t.Errorf("Autocomplete should be false for v9.3.0-beta.1")
|
|
}
|
|
})
|
|
t.Run("v10.0.1 should have packaging/autocomplete", func(t *testing.T) {
|
|
opts := versions.OptionsFor("v10.0.1")
|
|
|
|
if opts.Autocomplete.IsSet != true {
|
|
t.Errorf("Autocomplete should be set for v10.0.1")
|
|
}
|
|
if opts.Autocomplete.Value != true {
|
|
t.Errorf("Autocomplete should be true for v10.0.1")
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestMerge(t *testing.T) {
|
|
opts1 := versions.Options{
|
|
Constraint: versions.NewNullable("^1.2.3"),
|
|
DebPreRM: versions.NewNullable(true),
|
|
}
|
|
|
|
opts2 := versions.Options{
|
|
Constraint: versions.NewNullable("^3.2.1"),
|
|
CombinedExecutable: versions.NewNullable(false),
|
|
}
|
|
|
|
opts3 := versions.Options{
|
|
Constraint: versions.NewNullable("^5.0.0"),
|
|
}
|
|
|
|
merged := versions.Merge(opts1, opts2)
|
|
merged = versions.Merge(merged, opts3)
|
|
t.Run("It should keep the first constraint", func(t *testing.T) {
|
|
if merged.Constraint.Value != "^1.2.3" {
|
|
t.Fatalf(`merged.Constraint.Value != "^1.2.3", it is '%s'`, merged.Constraint.Value)
|
|
}
|
|
})
|
|
|
|
t.Run("It should use the last set 'CombinedExecutable'", func(t *testing.T) {
|
|
if merged.CombinedExecutable.Value != false {
|
|
t.Fatalf(`merged.Constraint.Value != false it is %t`, merged.CombinedExecutable.Value)
|
|
}
|
|
})
|
|
|
|
t.Run("It should use the last set 'DebPreRM'", func(t *testing.T) {
|
|
if merged.DebPreRM.Value != true {
|
|
t.Fatalf(`merged.DebPreRM.Value != true, it is %t`, merged.DebPreRM.Value)
|
|
}
|
|
})
|
|
}
|