Skip to content

Commit f3d121d

Browse files
authored
Content: QA Add acceptance tests for regression issue #17735 (#20330)
* Added tests for duplicate a content * Bumped version * Make all tests for duplicating a content run in the pipeline * Fixed comments * Reverted npm command
1 parent 84fb1f4 commit f3d121d

File tree

3 files changed

+67
-5
lines changed

3 files changed

+67
-5
lines changed

tests/Umbraco.Tests.AcceptanceTest/package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/Umbraco.Tests.AcceptanceTest/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
},
2323
"dependencies": {
2424
"@umbraco/json-models-builders": "^2.0.40",
25-
"@umbraco/playwright-testhelpers": "^16.0.48",
25+
"@umbraco/playwright-testhelpers": "^16.0.49",
2626
"camelize": "^1.0.0",
2727
"dotenv": "^16.3.1",
2828
"node-fetch": "^2.6.7"

tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/Content.spec.ts

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,3 +179,65 @@ test('can publish variant content node', async ({umbracoApi, umbracoUi}) => {
179179
const contentData = await umbracoApi.document.getByName(contentName);
180180
expect(contentData.variants[0].state).toBe('Published');
181181
});
182+
183+
test('can duplicate a content node to root', async ({umbracoApi, umbracoUi}) => {
184+
// Arrange
185+
const duplicatedContentName = contentName + ' (1)';
186+
const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
187+
documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeData.id);
188+
contentId = await umbracoApi.document.createDocumentWithTextContent(contentName, documentTypeId, contentText, dataTypeName);
189+
await umbracoUi.goToBackOffice();
190+
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
191+
192+
// Act
193+
await umbracoUi.content.clickActionsMenuForContent(contentName);
194+
// Duplicate to root
195+
await umbracoUi.content.clickDuplicateToActionMenuOption();
196+
await umbracoUi.content.clickLabelWithName('Content');
197+
await umbracoUi.content.clickDuplicateButton();
198+
199+
// Assert
200+
await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.duplicated);
201+
expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy();
202+
expect(await umbracoApi.document.doesNameExist(duplicatedContentName)).toBeTruthy();
203+
await umbracoUi.content.isContentInTreeVisible(contentName);
204+
await umbracoUi.content.isContentInTreeVisible(duplicatedContentName);
205+
const contentData = await umbracoApi.document.getByName(contentName);
206+
const duplicatedContentData = await umbracoApi.document.getByName(duplicatedContentName);
207+
expect(contentData.values[0].value).toEqual(duplicatedContentData.values[0].value);
208+
209+
// Clean
210+
await umbracoApi.document.ensureNameNotExists(duplicatedContentName);
211+
});
212+
213+
test('can duplicate a content node to other parent', async ({umbracoApi, umbracoUi}) => {
214+
// Arrange
215+
const parentDocumentTypeName = 'ParentDocumentType';
216+
const parentContentName = 'ParentContent';
217+
const listViewDataTypeName = 'List View - Content';
218+
const listViewDataTypeData = await umbracoApi.dataType.getByName(listViewDataTypeName);
219+
const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
220+
documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeData.id);
221+
contentId = await umbracoApi.document.createDocumentWithTextContent(contentName, documentTypeId, contentText, dataTypeName);
222+
const parentDocumentTypeId = await umbracoApi.documentType.createDocumentTypeWithAllowedChildNodeAndCollectionId(parentDocumentTypeName, documentTypeId, listViewDataTypeData.id);
223+
await umbracoApi.document.createDefaultDocument(parentContentName, parentDocumentTypeId);
224+
await umbracoUi.goToBackOffice();
225+
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
226+
227+
// Act
228+
await umbracoUi.content.clickActionsMenuForContent(contentName);
229+
await umbracoUi.content.clickDuplicateToActionMenuOption();
230+
await umbracoUi.content.clickModalMenuItemWithName(parentContentName);
231+
await umbracoUi.content.clickDuplicateButton();
232+
233+
// Assert
234+
await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.duplicated);
235+
await umbracoUi.content.isContentInTreeVisible(contentName);
236+
await umbracoUi.content.isContentInTreeVisible(parentContentName);
237+
await umbracoUi.content.openContentCaretButtonForName(parentContentName);
238+
await umbracoUi.content.isChildContentInTreeVisible(parentContentName, contentName);
239+
240+
// Clean
241+
await umbracoApi.document.ensureNameNotExists(parentContentName);
242+
await umbracoApi.document.ensureNameNotExists(parentDocumentTypeName);
243+
});

0 commit comments

Comments
 (0)