LFG
Renders//lfg/lfg/new
Act
Go to “/”
await navigate({ page, url: "/" });
Anything adder Act
Add “lfgPost”
await new AnythingAdder(page).add("lfgPost");
New LFG post page Act
Fill Text with “looking for a cool team”
await newPost.form.fill("postText", "looking for a cool team");Save
await newPost.save();
LFG page Assert
add filter button is visible
await expect(lfg.locators.addFilterButton).toBeVisible();
post “looking for a cool team” is visible
await expect(lfg.post("looking for a cool team")).toBeVisible();
Source
test("adds a new lfg post", async ({ page }) => {
await impersonate(page, NZAP_TEST_ID);
await navigate({ page, url: "/" });
await new AnythingAdder(page).add("lfgPost");
const newPost = new NewLFGPostPage(page);
await newPost.form.fill("postText", "looking for a cool team");
await newPost.save();
const lfg = new LFGPage(page);
await expect(lfg.locators.addFilterButton).toBeVisible();
await expect(lfg.post("looking for a cool team")).toBeVisible();
})creates post with custom languages
Renders/lfg/lfg/new
New LFG post page Act
Open the new LFG post page
await newPost.goto();
Fill Text with “looking for Japanese/Korean team”
await newPost.form.fill("postText", "looking for Japanese/Korean team");Check language “日本語”
await newPost.checkLanguage("日本語");Check language “한국어”
await newPost.checkLanguage("한국어");Save
await newPost.save();
LFG page Assert
language pill “JA / KO” is visible
await expect(new LFGPage(page).languagePill("JA / KO")).toBeVisible();
Source
test("creates post with custom languages", async ({ page }) => {
await impersonate(page, NZAP_TEST_ID);
const newPost = new NewLFGPostPage(page);
await newPost.goto();
await newPost.form.fill("postText", "looking for Japanese/Korean team");
await newPost.checkLanguage("日本語");
await newPost.checkLanguage("한국어");
await newPost.save();
await expect(new LFGPage(page).languagePill("JA / KO")).toBeVisible();
})Renders/lfg/lfg/new
New LFG post page Act
Open the new LFG post page
await newPost.goto();
Fill Text with “test post for language editing”
await newPost.form.fill("postText", "test post for language editing");Check language “Dansk”
await newPost.checkLanguage("Dansk");Save
await newPost.save();
LFG page Assert
language pill “DA” is visible
await expect(lfg.languagePill("DA")).toBeVisible();post “test post for language editing” is visible
await expect(lfg.post("test post for language editing")).toBeVisible();
Act
Edit first post → editPost
const editPost = await lfg.editFirstPost();
New LFG post page Act
Uncheck language “Dansk”
await editPost.uncheckLanguage("Dansk");Check language “Español”
await editPost.checkLanguage("Español");Save
await editPost.save();
LFG page Assert
add filter button is visible
await expect(lfg.locators.addFilterButton).toBeVisible();
post “test post for language editing” is visible
await expect(lfg.post("test post for language editing")).toBeVisible();language pill “ES” is visible
await expect(lfg.languagePill("ES")).toBeVisible();
Source
test("edits post languages", async ({ page }) => {
await impersonate(page, NZAP_TEST_ID);
const newPost = new NewLFGPostPage(page);
await newPost.goto();
await newPost.form.fill("postText", "test post for language editing");
await newPost.checkLanguage("Dansk");
await newPost.save();
const lfg = new LFGPage(page);
await expect(lfg.languagePill("DA")).toBeVisible();
await expect(lfg.post("test post for language editing")).toBeVisible();
const editPost = await lfg.editFirstPost();
await editPost.uncheckLanguage("Dansk");
await editPost.checkLanguage("Español");
await editPost.save();
await expect(lfg.locators.addFilterButton).toBeVisible();
await expect(lfg.post("test post for language editing")).toBeVisible();
await expect(lfg.languagePill("ES")).toBeVisible();
})filters posts by language
Renders/lfg/lfg/new
New LFG post page Act
Open the new LFG post page
await newPost.goto();
Fill Text with “Japanese speaking team”
await newPost.form.fill("postText", "Japanese speaking team");Check language “日本語”
await newPost.checkLanguage("日本語");Save
await newPost.save();
LFG page Assert
post “Japanese speaking team” is visible
await expect(lfg.post("Japanese speaking team")).toBeVisible();
Act
Add language filter
await lfg.addLanguageFilter();
Select filter language “ja”
await lfg.selectFilterLanguage("ja");
Assert
post “Japanese speaking team” is visible
await expect(lfg.post("Japanese speaking team")).toBeVisible();
Act
Select filter language “es”
await lfg.selectFilterLanguage("es");
Assert
post “Japanese speaking team” is not visible
await expect(lfg.post("Japanese speaking team")).not.toBeVisible();
Source
test("filters posts by language", async ({ page }) => {
await impersonate(page, NZAP_TEST_ID);
const newPost = new NewLFGPostPage(page);
await newPost.goto();
await newPost.form.fill("postText", "Japanese speaking team");
await newPost.checkLanguage("日本語");
await newPost.save();
const lfg = new LFGPage(page);
await expect(lfg.post("Japanese speaking team")).toBeVisible();
await lfg.addLanguageFilter();
await lfg.selectFilterLanguage("ja");
await expect(lfg.post("Japanese speaking team")).toBeVisible();
await lfg.selectFilterLanguage("es");
await expect(lfg.post("Japanese speaking team")).not.toBeVisible();
})AnythingAdder.adde2e/pages/layout/anything-adder.ts:28
No JSDoc
async add(item: AddableItem) {
await this.locators.menuButton.click();
await this.page.getByTestId(`menu-item-${item}`).click();
}lfgNewSchema.postTextapp/features/lfg/lfg-schemas.ts:18
postText: textArea({
label: "labels.text",
maxLength: LFG.MAX_TEXT_LENGTH,
})NewLFGPostPage.savee2e/pages/lfg/new-lfg-post-page.ts:29
No JSDoc
async save() {
await submit(this.page);
}LFGPage.locators.addFilterButtone2e/pages/lfg/lfg-page.ts:15
No JSDoc
page.getByTestId("add-filter-button")LFGPage.poste2e/pages/lfg/lfg-page.ts:27
No JSDoc
post(text: string) {
return this.page.getByText(text);
}AnythingAddere2e/pages/layout/anything-adder.ts:17
NewLFGPostPagee2e/pages/lfg/new-lfg-post-page.ts:7
No JSDoc
LFGPagee2e/pages/lfg/lfg-page.ts:8
No JSDoc
NewLFGPostPage.gotoe2e/pages/lfg/new-lfg-post-page.ts:16
No JSDoc
async goto() {
await navigate({ page: this.page, url: lfgNewPostPage() });
}NewLFGPostPage.checkLanguagee2e/pages/lfg/new-lfg-post-page.ts:21
checkLanguage(name: string) {
return this.page.getByLabel(name).check();
}LFGPage.languagePille2e/pages/lfg/lfg-page.ts:32
languagePill(languages: string) {
return this.page.getByText(languages, { exact: true });
}LFGPage.editFirstPoste2e/pages/lfg/lfg-page.ts:43
No JSDoc
async editFirstPost() {
await this.page.getByRole("link", { name: "Edit" }).first().click();
return new NewLFGPostPage(this.page);
}NewLFGPostPage.uncheckLanguagee2e/pages/lfg/new-lfg-post-page.ts:25
No JSDoc
uncheckLanguage(name: string) {
return this.page.getByLabel(name).uncheck();
}LFGPage.addLanguageFiltere2e/pages/lfg/lfg-page.ts:48
No JSDoc
async addLanguageFilter() {
await this.locators.addFilterButton.click();
await this.page.getByRole("menuitem", { name: "Spoken language" }).click();
}LFGPage.selectFilterLanguagee2e/pages/lfg/lfg-page.ts:53
No JSDoc
async selectFilterLanguage(code: UnifiedLanguageCode) {
await this.locators.languageFilterSelect.selectOption(code);
}