Skip to content

Commit ac83a32

Browse files
jemaynnul800sebastiaan
authored andcommitted
add delete language test (#11380)
(cherry picked from commit ba73a39)
1 parent 771dfdb commit ac83a32

File tree

2 files changed

+106
-0
lines changed

2 files changed

+106
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/// <reference types="Cypress" />
2+
context('Languages', () => {
3+
4+
beforeEach(() => {
5+
cy.umbracoLogin(Cypress.env('username'), Cypress.env('password'), false);
6+
});
7+
8+
it('Deletes language', () => {
9+
// Setup
10+
const language1 = 'da';
11+
const language2 = 'en-GB';
12+
cy.umbracoEnsureLanguageNotExists(language1);
13+
cy.umbracoEnsureLanguageNotExists(language2);
14+
cy.umbracoCreateLanguage(language1, true, '1');
15+
cy.umbracoCreateLanguage(language2, true, '1');
16+
cy.umbracoSection('settings');
17+
18+
// Enter language tree and select the language we just created
19+
cy.umbracoTreeItem('settings', ['Languages']).click();
20+
21+
// Assert there are 3 languages
22+
cy.get('tbody > tr').should('have.length', 3);
23+
24+
// Delete the Danish language
25+
cy.get('tr').contains('Danish').parents('tr').within(() => {
26+
cy.get('umb-button[label-key="general_delete"]').click()
27+
});
28+
cy.umbracoButtonByLabelKey('contentTypeEditor_yesDelete').click();
29+
30+
// Assert there is only 2 language
31+
cy.get('tbody > tr').should('have.length', 3);
32+
33+
// Cleanup
34+
cy.umbracoEnsureLanguageNotExists(language1);
35+
cy.umbracoEnsureLanguageNotExists(language2);
36+
});
37+
38+
});

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

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,73 @@
2626

2727
import {Command} from 'umbraco-cypress-testhelpers';
2828
import {Chainable} from './chainable';
29+
import { JsonHelper } from 'umbraco-cypress-testhelpers';
2930
new Chainable();
3031
new Command().registerCypressCommands();
32+
33+
Cypress.Commands.add('umbracoCreateLanguage', (culture, isMandatory = false, fallbackLanguageId = 1) => {
34+
35+
var langData =
36+
{
37+
"culture": culture,
38+
"isMandatory": isMandatory,
39+
"fallbackLanguageId": fallbackLanguageId
40+
};
41+
42+
// Create language through API
43+
cy.getCookie('UMB-XSRF-TOKEN', { log: false }).then((token) => {
44+
cy.request({
45+
method: 'POST',
46+
url: '/umbraco/backoffice/umbracoapi/language/SaveLanguage',
47+
followRedirect: true,
48+
headers: {
49+
Accept: 'application/json',
50+
'X-UMB-XSRF-TOKEN': token.value,
51+
},
52+
body: langData,
53+
log: false,
54+
}).then((response) => {
55+
return;
56+
});
57+
});
58+
});
59+
60+
Cypress.Commands.add('umbracoEnsureLanguageNotExists', (culture) => {
61+
cy.getCookie('UMB-XSRF-TOKEN', { log: false }).then((token) => {
62+
console.log('hit commands')
63+
cy.request({
64+
method: 'GET',
65+
url: '/umbraco/backoffice/umbracoapi/language/GetAllLanguages',
66+
followRedirect: true,
67+
headers: {
68+
Accept: 'application/json',
69+
'X-UMB-XSRF-TOKEN': token.value,
70+
},
71+
log: false,
72+
}).then((response) => {
73+
const searchBody = JsonHelper.getBody(response);
74+
if (searchBody.length > 0) {
75+
let languageId = null;
76+
for (const sb of searchBody) {
77+
if (sb.culture === culture) {
78+
languageId = sb.id;
79+
}
80+
}
81+
82+
if (languageId !== null) {
83+
cy.request({
84+
method: 'POST',
85+
url: '/umbraco/backoffice/umbracoapi/language/DeleteLanguage?id=' + languageId,
86+
followRedirect: false,
87+
headers: {
88+
ContentType: 'application/json',
89+
'X-UMB-XSRF-TOKEN': token.value,
90+
},
91+
}).then((resp) => {
92+
return;
93+
});
94+
}
95+
}
96+
});
97+
});
98+
});

0 commit comments

Comments
 (0)