Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file not shown.
2 changes: 2 additions & 0 deletions tests/test-team/fixtures/letters/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const getFile = (directory: string, filename: string) => {

return {
filepath,
filename,
open: () => {
const opened = files.get(filepath);

Expand Down Expand Up @@ -73,5 +74,6 @@ export const docxFixtures = {
randomBytes: getFile('docx', 'random-bytes.docx'),
randomBytesZipped: getFile('docx', 'random-bytes-zipped.docx'),
standard: getFile('docx', 'standard-english-template.docx'),
spanish: getFile('docx', 'spanish-letter-template.docx'),
unexpectedAddressLines: getFile('docx', 'unexpected-address-lines.docx'),
};
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ import { TemplateMgmtBasePage } from '../template-mgmt-base-page';
export class TemplateMgmtChoosePrintingAndPostagePage extends TemplateMgmtBasePage {
static readonly pathTemplate = '/choose-printing-and-postage/:templateId';

public static readonly urlRegexp = new RegExp(
/\/templates\/choose-printing-and-postage\/[\dA-Fa-f-]+/
);

variantsTable: Locator;

submitButton: Locator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ export class TemplateMgmtGetReadyToApproveLetterTemplatePage extends TemplateMgm
static readonly pathTemplate =
'/get-ready-to-approve-letter-template/:templateId';

public static readonly urlRegexp = new RegExp(
/\/templates\/get-ready-to-approve-letter-template\/[\dA-Fa-f-]+/
);

public readonly continueButton: Locator;
public readonly backButton: Locator;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export class TemplateMgmtPreviewLetterPage extends TemplateMgmtPreviewBasePage {
static readonly pathTemplate = '/preview-letter-template/:templateId';

public static readonly urlRegexp = new RegExp(
/\/templates\/preview-letter-template\/([\dA-Fa-f-]+)(?:\?from=edit)?$/
/\/templates\/preview-letter-template\/([\dA-Fa-f-]+)(?:\?from=(edit|upload))?$/
);

public readonly errorSummary: Locator;
Expand All @@ -24,6 +24,7 @@ export class TemplateMgmtPreviewLetterPage extends TemplateMgmtPreviewBasePage {
public readonly statusAction: Locator;
public readonly campaignAction: Locator;
public readonly printingAndPostage: Locator;
public readonly printingAndPostageAction: Locator;

public readonly tabbedRenderSection: Locator;

Expand Down Expand Up @@ -57,6 +58,7 @@ export class TemplateMgmtPreviewLetterPage extends TemplateMgmtPreviewBasePage {
this.statusAction = page.getByTestId('status-action');
this.campaignAction = page.getByTestId('campaign-action');
this.printingAndPostage = page.locator('[id="printing-and-postage"]');
this.printingAndPostageAction = page.getByTestId('printing-postage-action');

this.tabbedRenderSection = page.locator('section').filter({
has: page.getByRole('heading', { name: 'Letter preview' }),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,23 @@ export class TemplateMgmtReviewAndApproveLetterTemplatePage extends TemplateMgmt
'/review-and-approve-letter-template/:templateId';

public static readonly urlRegexp = new RegExp(
/\/templates\/review-and-approve-letter-template\/([\dA-Fa-f-]+)$/
/\/templates\/review-and-approve-letter-template\/([\dA-Fa-f-]+)(?:\?lockNumber=(\d))?$/
);

readonly approveButton: Locator;
readonly shortRenderIFrame: Locator;
readonly longRenderIFrame: Locator;

constructor(page: Page) {
super(page);

this.approveButton = page.getByRole('button', { name: 'Approve' });
this.shortRenderIFrame = page.locator(
'iframe[title="Letter preview - short examples"]'
);
this.longRenderIFrame = page.locator(
'iframe[title="Letter preview - long examples"]'
);
}

async clickApproveButton() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Locator, Page } from '@playwright/test';
import { TemplateMgmtBasePage } from '../template-mgmt-base-page';
import { TemplateMgmtUploadLetterBasePage } from './template-mgmt-upload-letter-base-page';

export class TemplateMgmtUploadBSLLetterTemplatePage extends TemplateMgmtBasePage {
export class TemplateMgmtUploadBSLLetterTemplatePage extends TemplateMgmtUploadLetterBasePage {
static readonly pathTemplate =
'/upload-british-sign-language-letter-template';

Expand Down Expand Up @@ -30,4 +30,18 @@ export class TemplateMgmtUploadBSLLetterTemplatePage extends TemplateMgmtBasePag
name: 'Upload letter template file',
});
}

async fillForm(input: {
name: string;
campaignId: string;
filePath: string;
language?: string;
}) {
await this.nameInput.fill(input.name);

await this.campaignIdInput.selectOption(input.campaignId);

await this.fileInput.click();
await this.fileInput.setInputFiles(input.filePath);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Locator, Page } from '@playwright/test';
import { TemplateMgmtBasePage } from '../template-mgmt-base-page';
import { TemplateMgmtUploadLetterBasePage } from './template-mgmt-upload-letter-base-page';

export class TemplateMgmtUploadLargePrintLetterTemplatePage extends TemplateMgmtBasePage {
export class TemplateMgmtUploadLargePrintLetterTemplatePage extends TemplateMgmtUploadLetterBasePage {
static readonly pathTemplate = '/upload-large-print-letter-template';

nameInput: Locator;
Expand Down Expand Up @@ -29,4 +29,18 @@ export class TemplateMgmtUploadLargePrintLetterTemplatePage extends TemplateMgmt
name: 'Upload letter template file',
});
}

async fillForm(input: {
name: string;
campaignId: string;
filePath: string;
language?: string;
}) {
await this.nameInput.fill(input.name);

await this.campaignIdInput.selectOption(input.campaignId);

await this.fileInput.click();
await this.fileInput.setInputFiles(input.filePath);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { Locator, Page } from '@playwright/test';
import { TemplateMgmtBasePage } from 'pages/template-mgmt-base-page';

export class TemplateMgmtUploadLetterBasePage extends TemplateMgmtBasePage {
submitButton: Locator;

constructor(page: Page) {
super(page);

this.submitButton = page.getByRole('button', {
name: 'Upload letter template file',
});
}

async fillForm(input: {

Check failure on line 15 in tests/test-team/pages/letter/template-mgmt-upload-letter-base-page.ts

View workflow job for this annotation

GitHub Actions / Test stage / Linting

'input' is defined but never used. Allowed unused args must match /^_/u
name: string;
campaignId: string;
filePath: string;
language?: string;
}) {
throw new Error('This method should be overridden');
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Locator, Page } from '@playwright/test';
import { TemplateMgmtBasePage } from '../template-mgmt-base-page';
import { TemplateMgmtUploadLetterBasePage } from './template-mgmt-upload-letter-base-page';

export class TemplateMgmtUploadOtherLanguageLetterTemplatePage extends TemplateMgmtBasePage {
export class TemplateMgmtUploadOtherLanguageLetterTemplatePage extends TemplateMgmtUploadLetterBasePage {
static readonly pathTemplate = '/upload-other-language-letter-template';

nameInput: Locator;
Expand Down Expand Up @@ -33,4 +33,24 @@ export class TemplateMgmtUploadOtherLanguageLetterTemplatePage extends TemplateM
name: 'Upload letter template file',
});
}

async fillForm(input: {
name: string;
campaignId: string;
filePath: string;
language?: string;
}) {
await this.nameInput.fill(input.name);

await this.campaignIdInput.selectOption(input.campaignId);

await this.fileInput.click();
await this.fileInput.setInputFiles(input.filePath);

if (!input.language) {
return;
}

await this.languageInput.selectOption(input.language);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Locator, Page } from '@playwright/test';
import { TemplateMgmtBasePage } from '../template-mgmt-base-page';
import { TemplateMgmtUploadLetterBasePage } from './template-mgmt-upload-letter-base-page';

export class TemplateMgmtUploadStandardEnglishLetterTemplatePage extends TemplateMgmtBasePage {
export class TemplateMgmtUploadStandardEnglishLetterTemplatePage extends TemplateMgmtUploadLetterBasePage {
static readonly pathTemplate = '/upload-standard-english-letter-template';

nameInput: Locator;
Expand Down Expand Up @@ -29,4 +29,18 @@ export class TemplateMgmtUploadStandardEnglishLetterTemplatePage extends Templat
name: 'Upload letter template file',
});
}

async fillForm(input: {
name: string;
campaignId: string;
filePath: string;
language?: string;
}) {
await this.nameInput.fill(input.name);

await this.campaignIdInput.selectOption(input.campaignId);

await this.fileInput.click();
await this.fileInput.setInputFiles(input.filePath);
}
}
Loading
Loading