mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-17 17:15:55 +08:00

* chore(feature): drop the feature set table * chore(feature): cleanup the types and remove unused flags * chore(feature): some more cleanup * chore(feature): add codeowners file * chore(feature): init to basic plan for failed validations * chore(feature): cleanup * chore(feature): pkg handler cleanup * chore(feature): pkg handler cleanup * chore(feature): address review comments * chore(feature): address review comments * chore(feature): address review comments --------- Co-authored-by: Vibhu Pandey <vibhupandey28@gmail.com>
90 lines
2.9 KiB
Go
90 lines
2.9 KiB
Go
package api
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/SigNoz/signoz/pkg/types/licensetypes"
|
|
"github.com/SigNoz/signoz/pkg/valuer"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestMergeFeatureSets(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
zeusFeatures []*licensetypes.Feature
|
|
internalFeatures []*licensetypes.Feature
|
|
expected []*licensetypes.Feature
|
|
}{
|
|
{
|
|
name: "empty zeusFeatures and internalFeatures",
|
|
zeusFeatures: []*licensetypes.Feature{},
|
|
internalFeatures: []*licensetypes.Feature{},
|
|
expected: []*licensetypes.Feature{},
|
|
},
|
|
{
|
|
name: "non-empty zeusFeatures and empty internalFeatures",
|
|
zeusFeatures: []*licensetypes.Feature{
|
|
{Name: valuer.NewString("Feature1"), Active: true},
|
|
{Name: valuer.NewString("Feature2"), Active: false},
|
|
},
|
|
internalFeatures: []*licensetypes.Feature{},
|
|
expected: []*licensetypes.Feature{
|
|
{Name: valuer.NewString("Feature1"), Active: true},
|
|
{Name: valuer.NewString("Feature2"), Active: false},
|
|
},
|
|
},
|
|
{
|
|
name: "empty zeusFeatures and non-empty internalFeatures",
|
|
zeusFeatures: []*licensetypes.Feature{},
|
|
internalFeatures: []*licensetypes.Feature{
|
|
{Name: valuer.NewString("Feature1"), Active: true},
|
|
{Name: valuer.NewString("Feature2"), Active: false},
|
|
},
|
|
expected: []*licensetypes.Feature{
|
|
{Name: valuer.NewString("Feature1"), Active: true},
|
|
{Name: valuer.NewString("Feature2"), Active: false},
|
|
},
|
|
},
|
|
{
|
|
name: "non-empty zeusFeatures and non-empty internalFeatures with no conflicts",
|
|
zeusFeatures: []*licensetypes.Feature{
|
|
{Name: valuer.NewString("Feature1"), Active: true},
|
|
{Name: valuer.NewString("Feature3"), Active: false},
|
|
},
|
|
internalFeatures: []*licensetypes.Feature{
|
|
{Name: valuer.NewString("Feature2"), Active: true},
|
|
{Name: valuer.NewString("Feature4"), Active: false},
|
|
},
|
|
expected: []*licensetypes.Feature{
|
|
{Name: valuer.NewString("Feature1"), Active: true},
|
|
{Name: valuer.NewString("Feature2"), Active: true},
|
|
{Name: valuer.NewString("Feature3"), Active: false},
|
|
{Name: valuer.NewString("Feature4"), Active: false},
|
|
},
|
|
},
|
|
{
|
|
name: "non-empty zeusFeatures and non-empty internalFeatures with conflicts",
|
|
zeusFeatures: []*licensetypes.Feature{
|
|
{Name: valuer.NewString("Feature1"), Active: true},
|
|
{Name: valuer.NewString("Feature2"), Active: false},
|
|
},
|
|
internalFeatures: []*licensetypes.Feature{
|
|
{Name: valuer.NewString("Feature1"), Active: false},
|
|
{Name: valuer.NewString("Feature3"), Active: true},
|
|
},
|
|
expected: []*licensetypes.Feature{
|
|
{Name: valuer.NewString("Feature1"), Active: true},
|
|
{Name: valuer.NewString("Feature2"), Active: false},
|
|
{Name: valuer.NewString("Feature3"), Active: true},
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
t.Run(test.name, func(t *testing.T) {
|
|
actual := MergeFeatureSets(test.zeusFeatures, test.internalFeatures)
|
|
assert.ElementsMatch(t, test.expected, actual)
|
|
})
|
|
}
|
|
}
|