V14 QA Added acceptance tests for Language (#15997)
* Fixed failing tests * Updated tests to use the updated helpers * Clean up tests * Enabled our pipeline for E2E testing * Updated the CMS URl for our E2E tests * Bumped version of our testHelpers * Did some fixing, still a bit more to do * Updated auth tests to use LoginUiHelper * Updated Telemetry tests to use TelemetryUiHelper * Updated LogViewer tests to use LogViewerUiHelper * Updated api tests to apply AAA pattern and fix failed tests * Removed unused import * Updated api tests for Language * Added ui tests for Language * Updated ui test of Language as test helper is changed * Bumped version of test helper * Updated create language tests * Updated delete language test * Added Language folder * Fixed method name * Bumped version of test helper * Fix merge conflict * Fixed typo * Added more waits * Fixed locator * Updated locator * Added timeout * Fixed password * Reversed file * Bumped version * Bumped version of test helper * Added more waits * Added skip for add language test * Bumped version of test helper * Added smoke tags * Fix conflict * Added @smoke tag to test all Language tests in the pipeline * Fixed comment * Removed smoke tag in describe --------- Co-authored-by: Andreas Zerbst <andr317c@live.dk>
This commit is contained in:
@@ -6,14 +6,15 @@ test.describe('Language tests', () => {
|
||||
const isoCodeDanish = 'da-DK';
|
||||
|
||||
test.beforeEach(async ({umbracoApi}) => {
|
||||
await umbracoApi.language.delete(isoCodeDanish);
|
||||
await umbracoApi.language.ensureNameNotExists(languageNameDanish);
|
||||
});
|
||||
|
||||
test.afterEach(async ({umbracoApi}) => {
|
||||
await umbracoApi.language.delete(isoCodeDanish);
|
||||
await umbracoApi.language.ensureNameNotExists(languageNameDanish);
|
||||
});
|
||||
|
||||
test('can create a language', async ({umbracoApi}) => {
|
||||
// Act
|
||||
await umbracoApi.language.create(languageNameDanish, false, false, isoCodeDanish);
|
||||
|
||||
// Assert
|
||||
@@ -21,13 +22,12 @@ test.describe('Language tests', () => {
|
||||
});
|
||||
|
||||
test('can update a language', async ({umbracoApi}) => {
|
||||
// Arrange
|
||||
const wrongLanguageName = 'densk';
|
||||
|
||||
await umbracoApi.language.create(wrongLanguageName, false, false, isoCodeDanish);
|
||||
|
||||
const language = await umbracoApi.language.get(isoCodeDanish);
|
||||
|
||||
// Updates language
|
||||
// Act
|
||||
language.name = languageNameDanish;
|
||||
await umbracoApi.language.update(isoCodeDanish, language);
|
||||
|
||||
@@ -39,10 +39,11 @@ test.describe('Language tests', () => {
|
||||
});
|
||||
|
||||
test('can delete a language', async ({umbracoApi}) => {
|
||||
// Arrange
|
||||
await umbracoApi.language.create(languageNameDanish, false, false, isoCodeDanish);
|
||||
|
||||
expect(await umbracoApi.language.doesExist(isoCodeDanish)).toBeTruthy();
|
||||
|
||||
//Act
|
||||
await umbracoApi.language.delete(isoCodeDanish);
|
||||
|
||||
// Assert
|
||||
|
||||
@@ -58,7 +58,7 @@ test.describe('Stylesheet tests', () => {
|
||||
expect(await umbracoApi.stylesheet.doesExist(stylesheetPath)).toBeTruthy();
|
||||
|
||||
// Act
|
||||
await umbracoApi.stylesheet.delete(stylesheetPath);
|
||||
await umbracoApi.stylesheet.delete(stylesheetName);
|
||||
|
||||
// Assert
|
||||
expect(await umbracoApi.stylesheet.doesExist(stylesheetPath)).toBeFalsy();
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
import {test} from '@umbraco/playwright-testhelpers';
|
||||
import {expect} from "@playwright/test";
|
||||
|
||||
test.describe('Language tests', () => {
|
||||
const languageName = 'Arabic';
|
||||
const isoCode = 'ar';
|
||||
const defaultLanguageName = 'English (United States)';
|
||||
const defaultLanguageIsoCode = 'en-US';
|
||||
|
||||
test.beforeEach(async ({umbracoApi, umbracoUi}) => {
|
||||
await umbracoUi.goToBackOffice();
|
||||
await umbracoApi.language.ensureNameNotExists(languageName);
|
||||
});
|
||||
|
||||
test.afterEach(async ({umbracoApi}) => {
|
||||
await umbracoApi.language.ensureNameNotExists(languageName);
|
||||
});
|
||||
|
||||
test('can add language @smoke', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
await umbracoUi.language.goToSettingsTreeItem('Language');
|
||||
|
||||
// Act
|
||||
await umbracoUi.language.clickCreateLink();
|
||||
await umbracoUi.language.chooseLanguageByName(languageName);
|
||||
await umbracoUi.language.clickSaveButton();
|
||||
|
||||
// Assert
|
||||
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
|
||||
// Verify the created language displays in the list
|
||||
await umbracoUi.language.clickLanguageRoot();
|
||||
await umbracoUi.language.isLanguageNameVisible(languageName, true);
|
||||
});
|
||||
|
||||
test('can update default language option @smoke', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
await umbracoApi.language.create(languageName, false, false, isoCode);
|
||||
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
|
||||
await umbracoUi.language.goToSettingsTreeItem('Language');
|
||||
|
||||
// Act
|
||||
await umbracoUi.language.clickLanguageByName(languageName);
|
||||
await umbracoUi.language.switchDefaultLanguageOption();
|
||||
await umbracoUi.language.clickSaveButton();
|
||||
|
||||
// Assert
|
||||
const languageData = await umbracoApi.language.get(isoCode);
|
||||
expect(languageData.isDefault).toBe(true);
|
||||
|
||||
// Clean
|
||||
// To delete this language, you need to change en-US to be default language
|
||||
const defaultLanguageData = await umbracoApi.language.get(defaultLanguageIsoCode);
|
||||
defaultLanguageData.isDefault = true;
|
||||
await umbracoApi.language.update(defaultLanguageIsoCode, defaultLanguageData);
|
||||
});
|
||||
|
||||
test('can update mandatory language option', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
await umbracoApi.language.create(languageName, false, false, isoCode);
|
||||
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
|
||||
await umbracoUi.language.goToSettingsTreeItem('Language');
|
||||
|
||||
// Act
|
||||
await umbracoUi.language.clickLanguageByName(languageName);
|
||||
await umbracoUi.language.switchMandatoryLanguageOption();
|
||||
await umbracoUi.language.clickSaveButton();
|
||||
|
||||
// Assert
|
||||
const languageData = await umbracoApi.language.get(isoCode);
|
||||
expect(languageData.isMandatory).toBe(true);
|
||||
});
|
||||
|
||||
test('can delete language @smoke', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
await umbracoApi.language.create(languageName, false, false, isoCode);
|
||||
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
|
||||
await umbracoUi.language.goToSettingsTreeItem('Language');
|
||||
|
||||
// Act
|
||||
await umbracoUi.language.removeLanguageByName(languageName);
|
||||
|
||||
// Assert
|
||||
await umbracoUi.language.isSuccessNotificationVisible();
|
||||
expect(await umbracoApi.language.doesExist(isoCode)).toBeFalsy();
|
||||
// TODO: uncomment this when the front-end is ready. Currently the deleted language is not disappeared after deleting.
|
||||
//await umbracoUi.language.isLanguageNameVisible(languageName, false);
|
||||
});
|
||||
|
||||
// TODO: Remove skip when the add fallback language function works
|
||||
test.skip('can remove fallback language', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
await umbracoApi.language.create(languageName, false, false, isoCode);
|
||||
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
|
||||
await umbracoUi.language.goToSettingsTreeItem('Language');
|
||||
|
||||
// Act
|
||||
await umbracoUi.language.clickLanguageByName(languageName);
|
||||
await umbracoUi.language.removeFallbackLanguageByName(defaultLanguageName);
|
||||
await umbracoUi.language.clickSaveButton();
|
||||
|
||||
// Act
|
||||
const languageData = await umbracoApi.language.get(isoCode);
|
||||
expect(languageData.fallbackIsoCode).toBeFalsy();
|
||||
});
|
||||
|
||||
// TODO: Remove skip when the add fallback language function works
|
||||
test.skip('can add fallback language', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
await umbracoApi.language.create(languageName, false, false, isoCode, null);
|
||||
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
|
||||
await umbracoUi.language.goToSettingsTreeItem('Language');
|
||||
|
||||
// Act
|
||||
await umbracoUi.language.clickLanguageByName(languageName);
|
||||
await umbracoUi.language.clickAddFallbackLanguageButton();
|
||||
await umbracoUi.language.selectFallbackLanguageByName(defaultLanguageName);
|
||||
await umbracoUi.language.clickSaveButton();
|
||||
|
||||
// Act
|
||||
const languageData = await umbracoApi.language.get(isoCode);
|
||||
expect(languageData.fallbackIsoCode).toBe(defaultLanguageIsoCode);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user