32 lines
2.1 KiB
JavaScript
32 lines
2.1 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { readFileSync } from "node:fs";
|
|
|
|
const workspace = readFileSync("src/features/campaigns/CampaignWorkspace.tsx", "utf8");
|
|
const overview = readFileSync("src/features/campaigns/CampaignOverviewPage.tsx", "utf8");
|
|
const recipients = readFileSync("src/features/campaigns/RecipientDataPage.tsx", "utf8");
|
|
const fieldValueInput = readFileSync("src/features/campaigns/components/FieldValueInput.tsx", "utf8");
|
|
const mailSettings = readFileSync("src/features/campaigns/MailSettingsPage.tsx", "utf8");
|
|
const api = readFileSync("src/api/campaigns.ts", "utf8");
|
|
|
|
assert.match(workspace, /<CampaignOverviewPage settings=\{settings\} auth=\{auth\}/);
|
|
assert.match(overview, /hasScope\(auth, "campaigns:campaign:archive"\)/);
|
|
assert.match(overview, /getCampaignLifecyclePolicy/);
|
|
assert.match(overview, /pendingLifecycleAction/);
|
|
assert.match(overview, /archive_campaign_confirmation/);
|
|
assert.match(overview, /await archiveCampaign\(settings, campaign\.id, pending\.policy\.state_token\)/);
|
|
assert.match(overview, /await deleteCampaign\(settings, campaign\.id, pending\.policy\.state_token\)/);
|
|
assert.match(overview, /await copyCampaign\(settings, campaign\.id, pending\.version\.id, pending\.policy\.state_token\)/);
|
|
assert.match(overview, /await archiveCampaignVersion\(settings, campaign\.id, pending\.version\.id, pending\.policy\.state_token\)/);
|
|
assert.match(api, /\/api\/v1\/campaigns\/\$\{campaignId\}\/archive/);
|
|
assert.match(api, /\/api\/v1\/campaigns\/\$\{campaignId\}\/copies/);
|
|
assert.match(api, /\/api\/v1\/campaigns\/\$\{campaignId\}\/lifecycle-policy/);
|
|
assert.match(recipients, /requestBulkActivation\(true\)/);
|
|
assert.match(recipients, /requestBulkActivation\(false\)/);
|
|
assert.match(recipients, /const count = inlineEntries\.filter/);
|
|
assert.match(recipients, /<ConfirmDialog[\s\S]*bulkActivation/);
|
|
assert.match(recipients, /replaceInlineEntries\(inlineEntries\.map/);
|
|
assert.match(fieldValueInput, /<PasswordField[\s\S]*generator[\s\S]*autoComplete="new-password"/);
|
|
assert.match(mailSettings, /disabled=\{credentialSaving\} generator autoComplete="new-password"/);
|
|
|
|
console.log("Campaign lifecycle UI structural contract passed.");
|