| package subscriptiontestutils |
|
|
| import ( |
| "context" |
| "testing" |
|
|
| "github.com/samber/lo" |
|
|
| "github.com/openmeterio/openmeter/openmeter/productcatalog/feature" |
| ) |
|
|
| var ( |
| ExampleFeatureKey = "test-feature-1" |
| ExampleFeatureKey2 = "test-feature-2" |
| ExampleFeatureKey3 = "test-feature-3" |
| ExampleFeatureMeterSlug = "meter1" |
| ) |
|
|
| func ExampleFeature(meterID string) feature.CreateFeatureInputs { |
| return feature.CreateFeatureInputs{ |
| Name: "Example Feature", |
| Key: ExampleFeatureKey, |
| Namespace: ExampleNamespace, |
| MeterID: lo.ToPtr(meterID), |
| } |
| } |
|
|
| func ExampleFeature2(meterID string) feature.CreateFeatureInputs { |
| return feature.CreateFeatureInputs{ |
| Name: "Example Feature 2", |
| Key: ExampleFeatureKey2, |
| Namespace: ExampleNamespace, |
| MeterID: lo.ToPtr(meterID), |
| } |
| } |
|
|
| func ExampleFeature3(meterID string) feature.CreateFeatureInputs { |
| return feature.CreateFeatureInputs{ |
| Name: "Example Feature 3", |
| Key: ExampleFeatureKey3, |
| Namespace: ExampleNamespace, |
| MeterID: lo.ToPtr(meterID), |
| } |
| } |
|
|
| type testFeatureConnector struct { |
| feature.FeatureConnector |
| } |
|
|
| func NewTestFeatureConnector(conn feature.FeatureConnector) *testFeatureConnector { |
| return &testFeatureConnector{conn} |
| } |
|
|
| func (c *testFeatureConnector) CreateExampleFeatures(t *testing.T, meterID string) []feature.Feature { |
| t.Helper() |
| feat1, err := c.FeatureConnector.CreateFeature(context.Background(), ExampleFeature(meterID)) |
| if err != nil { |
| t.Fatalf("failed to create feature: %v", err) |
| } |
| feat2, err := c.FeatureConnector.CreateFeature(context.Background(), ExampleFeature2(meterID)) |
| if err != nil { |
| t.Fatalf("failed to create feature: %v", err) |
| } |
| feat3, err := c.FeatureConnector.CreateFeature(context.Background(), ExampleFeature3(meterID)) |
| if err != nil { |
| t.Fatalf("failed to create feature: %v", err) |
| } |
| return []feature.Feature{feat1, feat2, feat3} |
| } |
|
|