openmeter / subscription /testutils /repository.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 7)
16cdcb7 verified
Raw
History Blame Contribute Delete
1.99 kB
package subscriptiontestutils
import (
"context"
"testing"
"github.com/openmeterio/openmeter/openmeter/productcatalog"
"github.com/openmeterio/openmeter/openmeter/subscription"
repository "github.com/openmeterio/openmeter/openmeter/subscription/repo"
"github.com/openmeterio/openmeter/pkg/clock"
"github.com/openmeterio/openmeter/pkg/models"
)
func NewSubscriptionRepo(t *testing.T, dbDeps *DBDeps) testSubscriptionRepo {
t.Helper()
repo := repository.NewSubscriptionRepo(dbDeps.DBClient)
return testSubscriptionRepo{
repo,
}
}
type testSubscriptionRepo struct {
subscription.SubscriptionRepository
}
func (r *testSubscriptionRepo) CreateExampleSubscription(t *testing.T, customerId string, planRef subscription.PlanRef) subscription.Subscription {
t.Helper()
input := getExampleCreateSubscriptionInput(customerId, planRef)
s, err := r.Create(context.Background(), input)
if err != nil {
t.Fatalf("failed to create example subscription: %v", err)
}
return s
}
func getExampleCreateSubscriptionInput(customerId string, planRef subscription.PlanRef) subscription.CreateSubscriptionEntityInput {
return subscription.CreateSubscriptionEntityInput{
Plan: &planRef,
CustomerId: customerId,
Currency: "USD",
SettlementMode: productcatalog.CreditThenInvoiceSettlementMode,
CadencedModel: models.CadencedModel{
ActiveFrom: clock.Now(),
},
}
}
func NewSubscriptionPhaseRepo(t *testing.T, dbDeps *DBDeps) testSubscriptionPhaseRepo {
t.Helper()
repo := repository.NewSubscriptionPhaseRepo(dbDeps.DBClient)
return testSubscriptionPhaseRepo{
repo,
}
}
type testSubscriptionPhaseRepo struct {
subscription.SubscriptionPhaseRepository
}
func NewSubscriptionItemRepo(t *testing.T, dbDeps *DBDeps) testSubscriptionItemRepo {
t.Helper()
repo := repository.NewSubscriptionItemRepo(dbDeps.DBClient)
return testSubscriptionItemRepo{
repo,
}
}
type testSubscriptionItemRepo struct {
subscription.SubscriptionItemRepository
}