Skip to content

Commit f44fb59

Browse files
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 <[email protected]>
1 parent 91d8106 commit f44fb59

File tree

3 files changed

+132
-7
lines changed

3 files changed

+132
-7
lines changed

tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/Language/Language.spec.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,28 @@ test.describe('Language tests', () => {
66
const isoCodeDanish = 'da-DK';
77

88
test.beforeEach(async ({umbracoApi}) => {
9-
await umbracoApi.language.delete(isoCodeDanish);
9+
await umbracoApi.language.ensureNameNotExists(languageNameDanish);
1010
});
1111

1212
test.afterEach(async ({umbracoApi}) => {
13-
await umbracoApi.language.delete(isoCodeDanish);
13+
await umbracoApi.language.ensureNameNotExists(languageNameDanish);
1414
});
1515

1616
test('can create a language', async ({umbracoApi}) => {
17+
// Act
1718
await umbracoApi.language.create(languageNameDanish, false, false, isoCodeDanish);
1819

1920
// Assert
2021
expect(await umbracoApi.language.doesExist(isoCodeDanish)).toBeTruthy();
2122
});
2223

2324
test('can update a language', async ({umbracoApi}) => {
25+
// Arrange
2426
const wrongLanguageName = 'densk';
25-
2627
await umbracoApi.language.create(wrongLanguageName, false, false, isoCodeDanish);
27-
2828
const language = await umbracoApi.language.get(isoCodeDanish);
2929

30-
// Updates language
30+
// Act
3131
language.name = languageNameDanish;
3232
await umbracoApi.language.update(isoCodeDanish, language);
3333

@@ -39,10 +39,11 @@ test.describe('Language tests', () => {
3939
});
4040

4141
test('can delete a language', async ({umbracoApi}) => {
42+
// Arrange
4243
await umbracoApi.language.create(languageNameDanish, false, false, isoCodeDanish);
43-
4444
expect(await umbracoApi.language.doesExist(isoCodeDanish)).toBeTruthy();
4545

46+
//Act
4647
await umbracoApi.language.delete(isoCodeDanish);
4748

4849
// Assert

tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/Stylesheet/Stylesheet.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ test.describe('Stylesheet tests', () => {
5858
expect(await umbracoApi.stylesheet.doesExist(stylesheetPath)).toBeTruthy();
5959

6060
// Act
61-
await umbracoApi.stylesheet.delete(stylesheetPath);
61+
await umbracoApi.stylesheet.delete(stylesheetName);
6262

6363
// Assert
6464
expect(await umbracoApi.stylesheet.doesExist(stylesheetPath)).toBeFalsy();
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
import {test} from '@umbraco/playwright-testhelpers';
2+
import {expect} from "@playwright/test";
3+
4+
test.describe('Language tests', () => {
5+
const languageName = 'Arabic';
6+
const isoCode = 'ar';
7+
const defaultLanguageName = 'English (United States)';
8+
const defaultLanguageIsoCode = 'en-US';
9+
10+
test.beforeEach(async ({umbracoApi, umbracoUi}) => {
11+
await umbracoUi.goToBackOffice();
12+
await umbracoApi.language.ensureNameNotExists(languageName);
13+
});
14+
15+
test.afterEach(async ({umbracoApi}) => {
16+
await umbracoApi.language.ensureNameNotExists(languageName);
17+
});
18+
19+
test('can add language @smoke', async ({umbracoApi, umbracoUi}) => {
20+
// Arrange
21+
await umbracoUi.language.goToSettingsTreeItem('Language');
22+
23+
// Act
24+
await umbracoUi.language.clickCreateLink();
25+
await umbracoUi.language.chooseLanguageByName(languageName);
26+
await umbracoUi.language.clickSaveButton();
27+
28+
// Assert
29+
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
30+
// Verify the created language displays in the list
31+
await umbracoUi.language.clickLanguageRoot();
32+
await umbracoUi.language.isLanguageNameVisible(languageName, true);
33+
});
34+
35+
test('can update default language option @smoke', async ({umbracoApi, umbracoUi}) => {
36+
// Arrange
37+
await umbracoApi.language.create(languageName, false, false, isoCode);
38+
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
39+
await umbracoUi.language.goToSettingsTreeItem('Language');
40+
41+
// Act
42+
await umbracoUi.language.clickLanguageByName(languageName);
43+
await umbracoUi.language.switchDefaultLanguageOption();
44+
await umbracoUi.language.clickSaveButton();
45+
46+
// Assert
47+
const languageData = await umbracoApi.language.get(isoCode);
48+
expect(languageData.isDefault).toBe(true);
49+
50+
// Clean
51+
// To delete this language, you need to change en-US to be default language
52+
const defaultLanguageData = await umbracoApi.language.get(defaultLanguageIsoCode);
53+
defaultLanguageData.isDefault = true;
54+
await umbracoApi.language.update(defaultLanguageIsoCode, defaultLanguageData);
55+
});
56+
57+
test('can update mandatory language option', async ({umbracoApi, umbracoUi}) => {
58+
// Arrange
59+
await umbracoApi.language.create(languageName, false, false, isoCode);
60+
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
61+
await umbracoUi.language.goToSettingsTreeItem('Language');
62+
63+
// Act
64+
await umbracoUi.language.clickLanguageByName(languageName);
65+
await umbracoUi.language.switchMandatoryLanguageOption();
66+
await umbracoUi.language.clickSaveButton();
67+
68+
// Assert
69+
const languageData = await umbracoApi.language.get(isoCode);
70+
expect(languageData.isMandatory).toBe(true);
71+
});
72+
73+
test('can delete language @smoke', async ({umbracoApi, umbracoUi}) => {
74+
// Arrange
75+
await umbracoApi.language.create(languageName, false, false, isoCode);
76+
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
77+
await umbracoUi.language.goToSettingsTreeItem('Language');
78+
79+
// Act
80+
await umbracoUi.language.removeLanguageByName(languageName);
81+
82+
// Assert
83+
await umbracoUi.language.isSuccessNotificationVisible();
84+
expect(await umbracoApi.language.doesExist(isoCode)).toBeFalsy();
85+
// TODO: uncomment this when the front-end is ready. Currently the deleted language is not disappeared after deleting.
86+
//await umbracoUi.language.isLanguageNameVisible(languageName, false);
87+
});
88+
89+
// TODO: Remove skip when the add fallback language function works
90+
test.skip('can remove fallback language', async ({umbracoApi, umbracoUi}) => {
91+
// Arrange
92+
await umbracoApi.language.create(languageName, false, false, isoCode);
93+
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
94+
await umbracoUi.language.goToSettingsTreeItem('Language');
95+
96+
// Act
97+
await umbracoUi.language.clickLanguageByName(languageName);
98+
await umbracoUi.language.removeFallbackLanguageByName(defaultLanguageName);
99+
await umbracoUi.language.clickSaveButton();
100+
101+
// Act
102+
const languageData = await umbracoApi.language.get(isoCode);
103+
expect(languageData.fallbackIsoCode).toBeFalsy();
104+
});
105+
106+
// TODO: Remove skip when the add fallback language function works
107+
test.skip('can add fallback language', async ({umbracoApi, umbracoUi}) => {
108+
// Arrange
109+
await umbracoApi.language.create(languageName, false, false, isoCode, null);
110+
expect(await umbracoApi.language.doesExist(isoCode)).toBeTruthy();
111+
await umbracoUi.language.goToSettingsTreeItem('Language');
112+
113+
// Act
114+
await umbracoUi.language.clickLanguageByName(languageName);
115+
await umbracoUi.language.clickAddFallbackLanguageButton();
116+
await umbracoUi.language.selectFallbackLanguageByName(defaultLanguageName);
117+
await umbracoUi.language.clickSaveButton();
118+
119+
// Act
120+
const languageData = await umbracoApi.language.get(isoCode);
121+
expect(languageData.fallbackIsoCode).toBe(defaultLanguageIsoCode);
122+
});
123+
});
124+

0 commit comments

Comments
 (0)