| package httpdriver | |
| import ( | |
| "testing" | |
| "github.com/samber/lo" | |
| "github.com/stretchr/testify/require" | |
| "github.com/openmeterio/openmeter/api" | |
| "github.com/openmeterio/openmeter/openmeter/billing" | |
| ) | |
| func TestFromAPIBillingWorkflowSubscriptionEndProrationModeDefaults(t *testing.T) { | |
| createConfig, err := fromAPIBillingWorkflowCreate(api.BillingWorkflowCreate{}) | |
| require.NoError(t, err) | |
| require.Equal(t, billing.SubscriptionEndProrationModeBillActualPeriod, createConfig.Invoicing.SubscriptionEndProrationMode) | |
| updateConfig, err := fromAPIBillingWorkflow(api.BillingWorkflow{}) | |
| require.NoError(t, err) | |
| require.Empty(t, updateConfig.Invoicing.SubscriptionEndProrationMode) | |
| explicitMode := api.BillingWorkflowInvoicingSubscriptionEndProrationModeBillFullPeriod | |
| explicitConfig, err := fromAPIBillingWorkflowCreate(api.BillingWorkflowCreate{ | |
| Invoicing: &api.BillingWorkflowInvoicingSettings{ | |
| SubscriptionEndProrationMode: lo.ToPtr(explicitMode), | |
| }, | |
| }) | |
| require.NoError(t, err) | |
| require.Equal(t, billing.SubscriptionEndProrationModeBillFullPeriod, explicitConfig.Invoicing.SubscriptionEndProrationMode) | |
| } | |