Skip to content

Commit dff59e8

Browse files
committed
refactor licensing preconditions into a single file
1 parent 8c5c1e5 commit dff59e8

File tree

4 files changed

+28
-61
lines changed

4 files changed

+28
-61
lines changed

src/Frontend/test/preconditions/hasLicense.ts

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/Frontend/test/preconditions/licensing.ts

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const licenseResponseTemplate = <LicenseInfo>{
1212
instance_name: "Particular.ServiceControl",
1313
trial_license: false,
1414
license_status: LicenseStatus.Valid,
15+
license_extension_url: "",
1516
status: "valid",
1617
};
1718
export const hasActiveLicense = ({ driver }: SetupFactoryOptions) => {
@@ -21,40 +22,51 @@ export const hasActiveLicense = ({ driver }: SetupFactoryOptions) => {
2122
});
2223
return licenseResponseTemplate;
2324
};
24-
export const withExpiredLicense = (licenseType: LicenseType, expiredDays: number) => getLicenseMockedResponse(licenseType, expiredDays, true);
25-
export const withExpiringLicense = (licenseType: LicenseType, expiringInDays: number) => getLicenseMockedResponse(licenseType, expiringInDays, false);
25+
export const hasExpiredLicense = (licenseType: LicenseType, expiredDays: number = 10, extensionUrl: string = "") => getLicenseMockedResponse(licenseType, expiredDays, extensionUrl, true);
26+
export const hasExpiringLicense = (licenseType: LicenseType, expiringInDays: number = 10, extensionUrl: string = "") => getLicenseMockedResponse(licenseType, expiringInDays, extensionUrl, false);
2627

2728
const getLicenseMockedResponse =
28-
(licenseType: LicenseType, expiringInDays: number, isExpired: boolean) =>
29+
(licenseType: LicenseType, expiringInDays: number, extensionUrl: string, isExpired: boolean) =>
2930
({ driver }: SetupFactoryOptions) => {
3031
const serviceControlInstanceUrl = window.defaultConfig.service_control_url;
3132
const customISOString = getCustomDateISOString(expiringInDays, isExpired);
3233

3334
let status: LicenseStatus;
34-
let triallicense = false;
35-
let upgradeprotectionexpiration = "";
36-
let expirationdate = "";
35+
let trialLicense = false;
36+
let upgradeProtectionExpiration = "";
37+
let expirationDate = "";
38+
let licenseExtensionUrl = extensionUrl;
3739

3840
switch (licenseType) {
3941
case LicenseType.Subscription:
4042
status = isExpired ? LicenseStatus.InvalidDueToExpiredSubscription : LicenseStatus.ValidWithExpiringSubscription;
41-
expirationdate = customISOString;
43+
expirationDate = customISOString;
4244
break;
4345
case LicenseType.Trial:
4446
status = isExpired ? LicenseStatus.InvalidDueToExpiredTrial : LicenseStatus.ValidWithExpiringTrial;
45-
expirationdate = customISOString;
46-
triallicense = true;
47+
expirationDate = customISOString;
48+
trialLicense = true;
49+
licenseExtensionUrl = extensionUrl ? extensionUrl : "https://particular.net/extend-your-trial?p=servicepulse";
4750
break;
4851
case LicenseType.UpgradeProtection:
4952
status = isExpired ? LicenseStatus.InvalidDueToExpiredUpgradeProtection : LicenseStatus.ValidWithExpiringUpgradeProtection;
50-
upgradeprotectionexpiration = customISOString;
53+
upgradeProtectionExpiration = customISOString;
54+
licenseExtensionUrl = extensionUrl ? extensionUrl : "https://particular.net/extend-your-trial?p=servicepulse";
5155
break;
5256
}
5357

5458
//We need to reset the global state to ensure the warning toast is always triggered by the value changing between multiple test runs. See documented issue and proposed solution https://github.com/Particular/ServicePulse/issues/1905
5559
license.license_status = LicenseStatus.Unavailable;
5660

57-
const response = { ...licenseResponseTemplate, license_type: licenseType, trial_license: triallicense, expiration_date: expirationdate, upgrade_protection_expiration: upgradeprotectionexpiration, license_status: status };
61+
const response = {
62+
...licenseResponseTemplate,
63+
license_type: licenseType,
64+
trial_license: trialLicense,
65+
expiration_date: expirationDate,
66+
upgrade_protection_expiration: upgradeProtectionExpiration,
67+
license_status: status,
68+
license_extension_url: licenseExtensionUrl,
69+
};
5870
console.log(response);
5971
driver.mockEndpoint(`${serviceControlInstanceUrl}license`, {
6072
body: response,

src/Frontend/test/specs/configuration/viewing-license.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ describe("FEATURE: License", () => {
3434
describe("RULE: License expired", () => {
3535
test("EXAMPLE: An expired license should show 'expired'", async ({ driver }) => {
3636
await driver.setUp(precondition.serviceControlWithMonitoring);
37-
await driver.setUp(precondition.withExpiredLicense(LicenseType.Subscription, 5)); //license expired 6 days before
37+
await driver.setUp(precondition.hasExpiredLicense(LicenseType.Subscription, 5)); //license expired 6 days before
3838
await driver.goTo("/configuration/license");
3939
await waitFor(async () => {
4040
expect(await licenseExpired()).toBe("Your license expired. Please update the license to continue using the Particular Service Platform.");
@@ -45,7 +45,7 @@ describe("FEATURE: License", () => {
4545
describe("RULE: License expiring soon must be displayed", () => {
4646
test("EXAMPLE: License expiring with x days should show 'expiring in X days'", async ({ driver }) => {
4747
await driver.setUp(precondition.serviceControlWithMonitoring);
48-
await driver.setUp(precondition.withExpiringLicense(LicenseType.Subscription, 10));
48+
await driver.setUp(precondition.hasExpiringLicense(LicenseType.Subscription, 10));
4949
await driver.goTo("/configuration/license");
5050
await waitFor(async () => {
5151
// expect(await licenseExpiryDaysLeft()).toBeVisible(); //License expiry date: 2/5/2025 - expiring in 11 days
@@ -54,7 +54,7 @@ describe("FEATURE: License", () => {
5454
});
5555
test("EXAMPLE: License expiring tomorrow should show 'expiring tomorrow'", async ({ driver }) => {
5656
await driver.setUp(precondition.serviceControlWithMonitoring);
57-
await driver.setUp(precondition.withExpiringLicense(LicenseType.Subscription, 0));
57+
await driver.setUp(precondition.hasExpiringLicense(LicenseType.Subscription, 0));
5858
await driver.goTo("/configuration/license");
5959
await waitFor(async () => {
6060
// expect(await licenseExpiryDaysLeft()).toBeVisible();
@@ -63,7 +63,7 @@ describe("FEATURE: License", () => {
6363
});
6464
test("EXAMPLE: License expiring today should show 'expiring today'", async ({ driver }) => {
6565
await driver.setUp(precondition.serviceControlWithMonitoring);
66-
await driver.setUp(precondition.withExpiringLicense(LicenseType.Subscription, -1));
66+
await driver.setUp(precondition.hasExpiringLicense(LicenseType.Subscription, -1));
6767
await driver.goTo("/configuration/license");
6868
await waitFor(async () => {
6969
//expect(await licenseExpiryDaysLeft()).toBeVisible();

src/Frontend/test/specs/licensing/license-enforcement.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ describe("FEATURE: EXPIRING license detection", () => {
1313
test(`EXAMPLE: Expiring trial with ${licenseExtensionUrl} as license extension url `, async ({ driver }) => {
1414
//Arrange
1515
await driver.setUp(precondition.serviceControlWithMonitoring);
16-
await driver.setUp(precondition.hasExpiringLicense(LicenseType.Trial, licenseExtensionUrl));
16+
await driver.setUp(precondition.hasExpiringLicense(LicenseType.Trial, 10, licenseExtensionUrl));
1717

1818
await driver.goTo("monitoring");
1919

0 commit comments

Comments
 (0)