diff --git a/apps/web/src/app/billing/accounts/trial-initiation/trial-billing-step.component.html b/apps/web/src/app/billing/accounts/trial-initiation/trial-billing-step.component.html index 212df558d94..d947ea96dfb 100644 --- a/apps/web/src/app/billing/accounts/trial-initiation/trial-billing-step.component.html +++ b/apps/web/src/app/billing/accounts/trial-initiation/trial-billing-step.component.html @@ -56,7 +56,7 @@
diff --git a/apps/web/src/app/billing/accounts/trial-initiation/trial-billing-step.component.ts b/apps/web/src/app/billing/accounts/trial-initiation/trial-billing-step.component.ts index 2a67f570db6..c6248a06a89 100644 --- a/apps/web/src/app/billing/accounts/trial-initiation/trial-billing-step.component.ts +++ b/apps/web/src/app/billing/accounts/trial-initiation/trial-billing-step.component.ts @@ -55,6 +55,7 @@ export class TrialBillingStepComponent implements OnInit { @ViewChild(ManageTaxInformationComponent) taxInfoComponent: ManageTaxInformationComponent; @Input() organizationInfo: OrganizationInfo; @Input() subscriptionProduct: SubscriptionProduct = SubscriptionProduct.PasswordManager; + @Input() trialLength: number; @Output() steppedBack = new EventEmitter(); @Output() organizationCreated = new EventEmitter(); diff --git a/apps/web/src/app/billing/trial-initiation/complete-trial-initiation/complete-trial-initiation.component.html b/apps/web/src/app/billing/trial-initiation/complete-trial-initiation/complete-trial-initiation.component.html index 8118b1e512d..078c926891a 100644 --- a/apps/web/src/app/billing/trial-initiation/complete-trial-initiation/complete-trial-initiation.component.html +++ b/apps/web/src/app/billing/trial-initiation/complete-trial-initiation/complete-trial-initiation.component.html @@ -48,6 +48,7 @@ ? SubscriptionProduct.SecretsManager : SubscriptionProduct.PasswordManager " + [trialLength]="trialLength" (steppedBack)="previousStep()" (organizationCreated)="createdOrganization($event)" > @@ -58,6 +59,7 @@ [email]="email" [orgLabel]="orgLabel" [product]="this.product" + [trialLength]="trialLength" >
{ - it("shows password manager text", () => { + beforeEach(() => { + route.queryParams = {}; + }); + + it("shows password manager free trial text", () => { route.queryParams.product = `${ProductType.PasswordManager}`; expect(freeTrialTextResolver(route, routerStateSnapshot)).toEqual({ @@ -19,7 +23,16 @@ describe("freeTrialTextResolver", () => { }); }); - it("shows secret manager text", () => { + it("shows password manager text", () => { + route.queryParams.product = `${ProductType.PasswordManager}`; + route.queryParams.trialLength = "0"; + + expect(freeTrialTextResolver(route, routerStateSnapshot)).toEqual({ + key: "continueSettingUpPasswordManager", + }); + }); + + it("shows secret manager free trial text", () => { route.queryParams.product = `${ProductType.SecretsManager}`; expect(freeTrialTextResolver(route, routerStateSnapshot)).toEqual({ @@ -27,11 +40,29 @@ describe("freeTrialTextResolver", () => { }); }); - it("shows default text", () => { + it("shows secret manager text", () => { + route.queryParams.product = `${ProductType.SecretsManager}`; + route.queryParams.trialLength = "0"; + + expect(freeTrialTextResolver(route, routerStateSnapshot)).toEqual({ + key: "continueSettingUpSecretsManager", + }); + }); + + it("shows default free trial text", () => { route.queryParams.product = `${ProductType.PasswordManager},${ProductType.SecretsManager}`; expect(freeTrialTextResolver(route, routerStateSnapshot)).toEqual({ key: "continueSettingUpFreeTrial", }); }); + + it("shows default text", () => { + route.queryParams.product = `${ProductType.PasswordManager},${ProductType.SecretsManager}`; + route.queryParams.trialLength = "0"; + + expect(freeTrialTextResolver(route, routerStateSnapshot)).toEqual({ + key: "continueSettingUp", + }); + }); }); diff --git a/apps/web/src/app/billing/trial-initiation/complete-trial-initiation/resolver/free-trial-text.resolver.ts b/apps/web/src/app/billing/trial-initiation/complete-trial-initiation/resolver/free-trial-text.resolver.ts index 28d61a6de13..eaeeec28f96 100644 --- a/apps/web/src/app/billing/trial-initiation/complete-trial-initiation/resolver/free-trial-text.resolver.ts +++ b/apps/web/src/app/billing/trial-initiation/complete-trial-initiation/resolver/free-trial-text.resolver.ts @@ -9,21 +9,29 @@ export const freeTrialTextResolver: ResolveFn = ( const { product } = route.queryParams; const products: ProductType[] = (product ?? "").split(",").map((p: string) => parseInt(p)); + const trialLength = route.queryParams.trialLength ? parseInt(route.queryParams.trialLength) : 7; + const onlyPasswordManager = products.length === 1 && products[0] === ProductType.PasswordManager; const onlySecretsManager = products.length === 1 && products[0] === ProductType.SecretsManager; switch (true) { case onlyPasswordManager: return { - key: "continueSettingUpFreeTrialPasswordManager", + key: + trialLength > 0 + ? "continueSettingUpFreeTrialPasswordManager" + : "continueSettingUpPasswordManager", }; case onlySecretsManager: return { - key: "continueSettingUpFreeTrialSecretsManager", + key: + trialLength > 0 + ? "continueSettingUpFreeTrialSecretsManager" + : "continueSettingUpSecretsManager", }; default: return { - key: "continueSettingUpFreeTrial", + key: trialLength > 0 ? "continueSettingUpFreeTrial" : "continueSettingUp", }; } }; diff --git a/apps/web/src/app/billing/trial-initiation/confirmation-details.component.html b/apps/web/src/app/billing/trial-initiation/confirmation-details.component.html index e706239f9ff..764a417f531 100644 --- a/apps/web/src/app/billing/trial-initiation/confirmation-details.component.html +++ b/apps/web/src/app/billing/trial-initiation/confirmation-details.component.html @@ -13,7 +13,7 @@ >.

-
  • +
  • {{ "trialPaidInfoMessage" | i18n: orgLabel }}

    diff --git a/apps/web/src/app/billing/trial-initiation/confirmation-details.component.ts b/apps/web/src/app/billing/trial-initiation/confirmation-details.component.ts index c850cdbd27a..e88c49c4f57 100644 --- a/apps/web/src/app/billing/trial-initiation/confirmation-details.component.ts +++ b/apps/web/src/app/billing/trial-initiation/confirmation-details.component.ts @@ -12,6 +12,7 @@ export class ConfirmationDetailsComponent { @Input() email: string; @Input() orgLabel: string; @Input() product?: ProductType = ProductType.PasswordManager; + @Input() trialLength: number; protected readonly Product = ProductType; } diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json index 6d128037a61..7484835d60c 100644 --- a/apps/web/src/locales/en/messages.json +++ b/apps/web/src/locales/en/messages.json @@ -9414,12 +9414,21 @@ "manageBillingFromProviderPortalMessage": { "message": "Manage billing from the Provider Portal" }, + "continueSettingUp": { + "message": "Continue setting up Bitwarden" + }, "continueSettingUpFreeTrial": { "message": "Continue setting up your free trial of Bitwarden" }, + "continueSettingUpPasswordManager": { + "message": "Continue setting up Bitwarden Password Manager" + }, "continueSettingUpFreeTrialPasswordManager": { "message": "Continue setting up your free trial of Bitwarden Password Manager" }, + "continueSettingUpSecretsManager": { + "message": "Continue setting up Bitwarden Secrets Manager" + }, "continueSettingUpFreeTrialSecretsManager": { "message": "Continue setting up your free trial of Bitwarden Secrets Manager" },