@umbraco/playwright-testhelpers
Version:
Test helpers for making playwright tests for Umbraco solutions
88 lines • 4.55 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LanguageUiHelper = void 0;
const UiBaseLocators_1 = require("./UiBaseLocators");
const ConstantHelper_1 = require("./ConstantHelper");
class LanguageUiHelper extends UiBaseLocators_1.UiBaseLocators {
languagesMenu;
languageDropdown;
defaultLanguageToggle;
mandatoryLanguageToggle;
addFallbackLanguageBtn;
languageTable;
deleteLanguageEntityAction;
languageCreateBtn;
settingsSidebar;
constructor(page) {
super(page);
this.settingsSidebar = page.getByTestId('section-sidebar:Umb.SectionSidebarMenu.Settings');
this.languagesMenu = this.settingsSidebar.getByRole('link', { name: 'Languages' });
this.languageDropdown = page.locator('umb-input-culture-select #expand-symbol-wrapper');
this.defaultLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Default language/ }).locator('#toggle');
this.mandatoryLanguageToggle = page.locator('uui-toggle').filter({ hasText: /Mandatory language/ }).locator('#toggle');
this.addFallbackLanguageBtn = page.locator('#add-button');
this.languageTable = page.locator('umb-language-table-collection-view');
this.deleteLanguageEntityAction = page.getByTestId('entity-action:Umb.EntityAction.Language.Delete');
this.languageCreateBtn = page.getByTestId('collection-action:Umb.CollectionAction.Language.Create');
}
async clickLanguageCreateButton() {
await this.click(this.languageCreateBtn);
}
async clickLanguagesMenu() {
await this.click(this.languagesMenu);
}
async goToLanguages() {
await this.goToSection(ConstantHelper_1.ConstantHelper.sections.settings);
await this.clickLanguagesMenu();
}
async removeFallbackLanguageByIsoCode(isoCode) {
const languageLocator = this.page.locator(`umb-entity-item-ref[id="${isoCode}"]`);
await this.hoverAndClick(languageLocator, languageLocator.getByLabel('Remove'));
await this.click(this.confirmToRemoveBtn);
}
async chooseLanguageByName(name) {
await this.click(this.languageDropdown);
await this.click(this.page.locator('umb-input-culture-select').getByText(name, { exact: true }));
}
async clickLanguageByName(name) {
await this.click(this.languageTable.getByText(name, { exact: true }));
}
async isLanguageNameVisible(name, isVisible = true) {
return await this.isVisible(this.languageTable.getByText(name, { exact: true }), isVisible);
}
async switchDefaultLanguageOption() {
await this.click(this.defaultLanguageToggle);
}
async switchMandatoryLanguageOption() {
await this.click(this.mandatoryLanguageToggle);
}
async clickAddFallbackLanguageButton() {
await this.click(this.addFallbackLanguageBtn);
}
async clickRemoveLanguageByName(name) {
await this.click(this.page.locator('uui-table-row').filter({ has: this.page.getByText(name, { exact: true }) }).locator(this.deleteLanguageEntityAction), { force: true });
}
async removeLanguageByName(name) {
await this.clickRemoveLanguageByName(name);
await this.clickConfirmToDeleteButton();
}
async removeLanguageByNameAndWaitForLanguageToBeDeleted(name) {
await this.clickRemoveLanguageByName(name);
return await this.clickConfirmToDeleteButtonAndWaitForLanguageToBeDeleted();
}
async selectFallbackLanguageByName(name) {
await this.click(this.page.locator('umb-language-picker-modal').getByLabel(name));
await this.clickSubmitButton();
}
async clickSaveButtonAndWaitForLanguageToBeCreated() {
return await this.waitForResponseAfterExecutingPromise(ConstantHelper_1.ConstantHelper.apiEndpoints.language, this.clickSaveButton(), ConstantHelper_1.ConstantHelper.statusCodes.created);
}
async clickSaveButtonAndWaitForLanguageToBeUpdated() {
return await this.waitForResponseAfterExecutingPromise(ConstantHelper_1.ConstantHelper.apiEndpoints.language, this.clickSaveButton(), ConstantHelper_1.ConstantHelper.statusCodes.ok);
}
async clickConfirmToDeleteButtonAndWaitForLanguageToBeDeleted() {
return await this.waitForResponseAfterExecutingPromise(ConstantHelper_1.ConstantHelper.apiEndpoints.language, this.clickConfirmToDeleteButton(), ConstantHelper_1.ConstantHelper.statusCodes.ok);
}
}
exports.LanguageUiHelper = LanguageUiHelper;
//# sourceMappingURL=LanguageUiHelper.js.map