mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-06-04 11:25:52 +08:00

* feat(license): base setup for license service * feat(license): delete old manager and import to new * feat(license): deal with features * feat(license): complete the license service in ee * feat(license): add sqlmigration for licenses * feat(license): remove feature flags * feat(license): refactor into provider pattern * feat(license): remove the ff lookup interface * feat(license): add logging to the validator functions * feat(license): implement features for OSS build * feat(license): fix the OSS build * feat(license): lets blast frontend * feat(license): fix the EE OSS build without license * feat(license): remove the hardcoded testing configs * feat(license): upgrade migration to 34 * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): integration tests * feat(license): integration tests * feat(license): refactor frontend * feat(license): make frontend api structure changes * feat(license): fix integration tests * feat(license): revert hardcoded configs * feat(license): fix integration tests * feat(license): address review comments * feat(license): address review comments * feat(license): address review comments * feat(license): address review comments * feat(license): update migration * feat(license): update migration * feat(license): update migration * feat(license): fixed logging * feat(license): use the unmarshaller for postable subscription * feat(license): correct the error message * feat(license): fix license test * feat(license): fix lint issues * feat(user): do not kill the service if upstream is down
89 lines
2.6 KiB
Go
89 lines
2.6 KiB
Go
package api
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/SigNoz/signoz/pkg/types/featuretypes"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestMergeFeatureSets(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
zeusFeatures []*featuretypes.GettableFeature
|
|
internalFeatures []*featuretypes.GettableFeature
|
|
expected []*featuretypes.GettableFeature
|
|
}{
|
|
{
|
|
name: "empty zeusFeatures and internalFeatures",
|
|
zeusFeatures: []*featuretypes.GettableFeature{},
|
|
internalFeatures: []*featuretypes.GettableFeature{},
|
|
expected: []*featuretypes.GettableFeature{},
|
|
},
|
|
{
|
|
name: "non-empty zeusFeatures and empty internalFeatures",
|
|
zeusFeatures: []*featuretypes.GettableFeature{
|
|
{Name: "Feature1", Active: true},
|
|
{Name: "Feature2", Active: false},
|
|
},
|
|
internalFeatures: []*featuretypes.GettableFeature{},
|
|
expected: []*featuretypes.GettableFeature{
|
|
{Name: "Feature1", Active: true},
|
|
{Name: "Feature2", Active: false},
|
|
},
|
|
},
|
|
{
|
|
name: "empty zeusFeatures and non-empty internalFeatures",
|
|
zeusFeatures: []*featuretypes.GettableFeature{},
|
|
internalFeatures: []*featuretypes.GettableFeature{
|
|
{Name: "Feature1", Active: true},
|
|
{Name: "Feature2", Active: false},
|
|
},
|
|
expected: []*featuretypes.GettableFeature{
|
|
{Name: "Feature1", Active: true},
|
|
{Name: "Feature2", Active: false},
|
|
},
|
|
},
|
|
{
|
|
name: "non-empty zeusFeatures and non-empty internalFeatures with no conflicts",
|
|
zeusFeatures: []*featuretypes.GettableFeature{
|
|
{Name: "Feature1", Active: true},
|
|
{Name: "Feature3", Active: false},
|
|
},
|
|
internalFeatures: []*featuretypes.GettableFeature{
|
|
{Name: "Feature2", Active: true},
|
|
{Name: "Feature4", Active: false},
|
|
},
|
|
expected: []*featuretypes.GettableFeature{
|
|
{Name: "Feature1", Active: true},
|
|
{Name: "Feature2", Active: true},
|
|
{Name: "Feature3", Active: false},
|
|
{Name: "Feature4", Active: false},
|
|
},
|
|
},
|
|
{
|
|
name: "non-empty zeusFeatures and non-empty internalFeatures with conflicts",
|
|
zeusFeatures: []*featuretypes.GettableFeature{
|
|
{Name: "Feature1", Active: true},
|
|
{Name: "Feature2", Active: false},
|
|
},
|
|
internalFeatures: []*featuretypes.GettableFeature{
|
|
{Name: "Feature1", Active: false},
|
|
{Name: "Feature3", Active: true},
|
|
},
|
|
expected: []*featuretypes.GettableFeature{
|
|
{Name: "Feature1", Active: true},
|
|
{Name: "Feature2", Active: false},
|
|
{Name: "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)
|
|
})
|
|
}
|
|
}
|