Skip to content

Commit ea9d691

Browse files
jemaynjmayntzhusen
andauthored
Cy create language (#11546)
* add create language test * add create language test * fix bug, move test to new folder and add type definitions * update to use culture command Co-authored-by: Jesper <[email protected]>
1 parent 837cef0 commit ea9d691

File tree

3 files changed

+54
-8
lines changed

3 files changed

+54
-8
lines changed

tests/Umbraco.Tests.AcceptanceTest/cypress/integration/Languages/languages.ts

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,38 @@
11
/// <reference types="Cypress" />
2+
23
context('Languages', () => {
34

45
beforeEach(() => {
56
cy.umbracoLogin(Cypress.env('username'), Cypress.env('password'), false);
67
});
78

9+
it('Creates language', () => {
10+
// Setup
11+
const language = 'Danish';
12+
const culture = 'da';
13+
cy.umbracoEnsureLanguageCultureNotExists(culture);
14+
cy.umbracoSection('settings');
15+
16+
// Enter language tree and create new language
17+
cy.umbracoTreeItem('settings', ['Languages']).click();
18+
cy.umbracoButtonByLabelKey('languages_addLanguage').click();
19+
cy.get('select[name="newLang"]').select(language);
20+
21+
// Save and assert success
22+
cy.umbracoButtonByLabelKey('buttons_save').click();
23+
cy.umbracoSuccessNotification().should('be.visible');
24+
25+
// Cleanup
26+
cy.umbracoEnsureLanguageCultureNotExists(culture);
27+
});
28+
829
it('Deletes language', () => {
930
// Setup
1031
const language1 = 'da';
1132
const language2 = 'en-GB';
12-
cy.umbracoEnsureLanguageNotExists(language1);
13-
cy.umbracoEnsureLanguageNotExists(language2);
33+
cy.umbracoEnsureLanguageCultureNotExists(language1);
34+
cy.umbracoEnsureLanguageCultureNotExists(language2);
35+
1436
cy.umbracoCreateLanguage(language1, true, '1');
1537
cy.umbracoCreateLanguage(language2, true, '1');
1638
cy.umbracoSection('settings');
@@ -28,11 +50,11 @@ context('Languages', () => {
2850
cy.umbracoButtonByLabelKey('contentTypeEditor_yesDelete').click();
2951

3052
// Assert there is only 2 language
31-
cy.get('tbody > tr').should('have.length', 3);
53+
cy.get('tbody > tr').should('have.length', 2);
3254

3355
// Cleanup
34-
cy.umbracoEnsureLanguageNotExists(language1);
35-
cy.umbracoEnsureLanguageNotExists(language2);
56+
cy.umbracoEnsureLanguageCultureNotExists(language1);
57+
cy.umbracoEnsureLanguageCultureNotExists(language2);
3658
});
3759

38-
});
60+
});

tests/Umbraco.Tests.AcceptanceTest/cypress/support/commands.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,8 @@ Cypress.Commands.add('umbracoCreateLanguage', (culture, isMandatory = false, fal
5757
});
5858
});
5959

60-
Cypress.Commands.add('umbracoEnsureLanguageNotExists', (culture) => {
60+
Cypress.Commands.add('umbracoEnsureLanguageCultureNotExists', (culture) => {
6161
cy.getCookie('UMB-XSRF-TOKEN', { log: false }).then((token) => {
62-
console.log('hit commands')
6362
cy.request({
6463
method: 'GET',
6564
url: '/umbraco/backoffice/umbracoapi/language/GetAllLanguages',

tests/Umbraco.Tests.AcceptanceTest/cypress/typings.d.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,28 @@
33

44
// type definitions for custom commands like "createDefaultTodos"
55
// <reference types="support" />
6+
7+
export {};
8+
9+
declare global {
10+
// eslint-disable-next-line @typescript-eslint/no-namespace
11+
namespace Cypress {
12+
interface Chainable<Subject> {
13+
/**
14+
* Checks to see if the language with specified culture does not exist
15+
* If it does it will automatically delete it
16+
* @param {string} culture Culture of language to delete
17+
* @example cy.umbracoEnsureLanguageCultureNotExists('da-DK');
18+
*/
19+
umbracoEnsureLanguageCultureNotExists: (culture: string) => Chainable<void>;
20+
/**
21+
* Creates a language from a culture
22+
* @param {string} culture Culture of the language - fx "da_DK"
23+
* @param {boolean} isMandatory Set whether the language is mandatory or not. Defaults to false
24+
* @param {string} fallbackLanguageId of the language to fallback to. Defaults to 1 which is en_US
25+
* @example cy.umbracoCreateLanguage('da', true, '1');
26+
*/
27+
umbracoCreateLanguage: (culture: string, isMandatory: boolean, fallbackLanguageId: string) => Chainable<void>;
28+
}
29+
}
30+
}

0 commit comments

Comments
 (0)