Files
grafana/pkg/build/daggerbuild/versions/opts_test.go
Kevin Minehart 13f4cf162e CI: move grafana-build into pkg/build (#105640)
* move grafana-build into pkg/build
2025-05-20 10:48:00 -05:00

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)
}
})
}