Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V14 QA Added acceptance tests for Language #15997

Merged
merged 54 commits into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
cdd3fca
Fixed failing tests
andr317c Dec 14, 2023
ddffd73
Merge remote-tracking branch 'origin/v14/dev' into v14/QA/fix-accepta…
andr317c Dec 18, 2023
72dd8ea
Updated tests to use the updated helpers
andr317c Dec 18, 2023
1624eb0
Clean up tests
andr317c Dec 21, 2023
0e5aaaa
Enabled our pipeline for E2E testing
andr317c Dec 21, 2023
3a0afd8
Updated the CMS URl for our E2E tests
andr317c Dec 21, 2023
db3cfde
Bumped version of our testHelpers
andr317c Dec 21, 2023
c5695f6
Did some fixing, still a bit more to do
andr317c Dec 22, 2023
691cde2
Updated auth tests to use LoginUiHelper
nhudinh0309 Dec 26, 2023
01a6f38
Updated Telemetry tests to use TelemetryUiHelper
nhudinh0309 Dec 26, 2023
dd2abe5
Updated LogViewer tests to use LogViewerUiHelper
nhudinh0309 Dec 26, 2023
ce66578
Updated api tests to apply AAA pattern and fix failed tests
nhudinh0309 Dec 26, 2023
ab111cc
Removed unused import
nhudinh0309 Dec 26, 2023
62ed9de
Updated api tests for Language
nhudinh0309 Dec 27, 2023
d92430d
Added ui tests for Language
nhudinh0309 Dec 27, 2023
59dec08
Updated ui test of Language as test helper is changed
nhudinh0309 Jan 23, 2024
4aa6f9c
Bumped version of test helper
nhudinh0309 Jan 23, 2024
08b3ed1
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Mar 29, 2024
0bb1427
Updated create language tests
nhudinh0309 Mar 29, 2024
74c0050
Updated delete language test
nhudinh0309 Apr 1, 2024
e0785cb
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 5, 2024
327b87a
Added Language folder
nhudinh0309 Apr 5, 2024
589dbdf
Fixed method name
nhudinh0309 Apr 5, 2024
978537d
Bumped version of test helper
nhudinh0309 Apr 5, 2024
ceb261d
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 5, 2024
8f0ee11
Fix merge conflict
nhudinh0309 Apr 5, 2024
55f5820
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 9, 2024
b2507c8
Fixed typo
nhudinh0309 Apr 9, 2024
2ff586a
Added more waits
nhudinh0309 Apr 9, 2024
ca339dc
Fixed locator
nhudinh0309 Apr 9, 2024
3d59ccc
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 9, 2024
cb32d84
Updated locator
nhudinh0309 Apr 9, 2024
bbdd111
Added timeout
nhudinh0309 Apr 9, 2024
475615c
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 9, 2024
b32ac4f
Fixed password
nhudinh0309 Apr 9, 2024
8b9ace4
Reversed file
nhudinh0309 Apr 9, 2024
5289735
Bumped version
nhudinh0309 Apr 10, 2024
11a31d2
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 10, 2024
2d9853d
Bumped version of test helper
nhudinh0309 Apr 10, 2024
5742860
Added more waits
nhudinh0309 Apr 10, 2024
2430384
Added skip for add language test
nhudinh0309 Apr 10, 2024
55ebec5
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 10, 2024
8da17ad
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 11, 2024
0bc7bab
Bumped version of test helper
nhudinh0309 Apr 11, 2024
1fd3d56
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 17, 2024
0e11a34
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 17, 2024
c98707e
Added smoke tags
nhudinh0309 Apr 17, 2024
ef4551a
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 Apr 22, 2024
e44c27b
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 May 3, 2024
b1973d4
Fix conflict
nhudinh0309 May 3, 2024
9ceff16
Merge branch 'v14/dev' into v14/QA/languages-acceptance-tests
nhudinh0309 May 3, 2024
4c53755
Added @smoke tag to test all Language tests in the pipeline
nhudinh0309 May 6, 2024
2e7989c
Fixed comment
nhudinh0309 May 6, 2024
fee7527
Removed smoke tag in describe
nhudinh0309 May 7, 2024
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
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,28 @@ 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
expect(await umbracoApi.language.doesExist(isoCodeDanish)).toBeTruthy();
});

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);

Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
@@ -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);
});

Check warning on line 71 in tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Language/Language.spec.ts

View check run for this annotation

CodeScene Delta Analysis / CodeScene Cloud Delta Analysis (v14/dev)

❌ New issue: Code Duplication

The module contains 3 functions with similar structure: 'Language tests'.'can add fallback language','Language tests'.'can remove fallback language','Language tests'.'can update mandatory language option'. Avoid duplicated, aka copy-pasted, code inside the module. More duplication lowers the code health.

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);
});
});

Loading