@@ -40,6 +40,7 @@ import {
4040import { createWorkspace , grantWorkspacePermission } from '../fixtures/factories/workspaces'
4141import { E2eHttpClient } from '../fixtures/http-client'
4242import type { ResolvedScenario , ScenarioSubscription } from '../fixtures/scenario'
43+ import { expectedUsageLimit , initialSubscriptionStatus } from '../fixtures/scenario-billing'
4344import { validateScenario , validateScenarioSet } from '../fixtures/validate-scenario'
4445import { createSettingsPersonaScenarios } from '../settings/personas'
4546import { writeSyntheticSecretCanary } from '../support/leak-canary'
@@ -729,57 +730,6 @@ function resolveBillingReference(world: E2EWorld, subscription: ScenarioSubscrip
729730 ) . id
730731}
731732
732- function initialSubscriptionStatus (
733- scenario : ResolvedScenario ,
734- definition : ScenarioSubscription
735- ) : 'active' | 'past_due' | 'canceled' {
736- if ( definition . status !== 'lapsed' ) return definition . status
737- const hasEntitledReplacement = scenario . definition . subscriptions . some (
738- ( candidate ) =>
739- candidate . key !== definition . key &&
740- ( candidate . status === 'active' || candidate . status === 'past_due' ) &&
741- sameBillingReference ( candidate , definition )
742- )
743- return hasEntitledReplacement ? 'canceled' : 'active'
744- }
745-
746- function sameBillingReference ( left : ScenarioSubscription , right : ScenarioSubscription ) : boolean {
747- const identity = ( subscription : ScenarioSubscription ) : string =>
748- subscription . billingReference . kind === 'user'
749- ? `user/${ subscription . billingReference . userKey } `
750- : `organization/${ subscription . billingReference . organizationKey } `
751- return identity ( left ) === identity ( right )
752- }
753-
754- function expectedUsageLimit ( scenario : ResolvedScenario , userKey : string ) : string | null {
755- const membership = scenario . definition . organizationMemberships . find (
756- ( candidate ) => candidate . userKey === userKey
757- )
758- if ( membership ) {
759- const organizationSubscription = scenario . definition . subscriptions . find (
760- ( candidate ) =>
761- candidate . billingReference . kind === 'organization' &&
762- candidate . billingReference . organizationKey === membership . organizationKey
763- )
764- if (
765- organizationSubscription ?. status === 'active' ||
766- organizationSubscription ?. status === 'past_due'
767- ) {
768- return null
769- }
770- }
771- const personalSubscription = scenario . definition . subscriptions . find (
772- ( candidate ) =>
773- candidate . billingReference . kind === 'user' &&
774- candidate . billingReference . userKey === userKey &&
775- ( candidate . status === 'active' || candidate . status === 'past_due' )
776- )
777- if ( personalSubscription ?. plan . startsWith ( 'pro_' ) ) {
778- return String ( Number ( personalSubscription . plan . split ( '_' ) [ 1 ] ) / 200 )
779- }
780- return '5'
781- }
782-
783733function matchesEnterpriseMetadata (
784734 metadata : unknown ,
785735 definition : ScenarioSubscription ,
0 commit comments