V14 Acceptance Test for the Package Section (#15618)
* In progress tests * Updated createdPackaged tests * Added test for checking if we are able to see the marketplace * Added tests for checking if the correct message is shown * Made quite a lot of changes, used the locators in the testHelpers. Added additional tests * Updated to match changes to the Ui TestHelpers * Fixed test * added package file * Bumped versions * Updated naming * Fixed Acceptance Test to match patterns * Updated locator in test. * Added Act comment * Followed comments from PR
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<umbPackage>
|
||||
<info>
|
||||
<package>
|
||||
<name>TestPackage</name>
|
||||
</package>
|
||||
</info>
|
||||
<DocumentTypes />
|
||||
<MediaTypes />
|
||||
<Templates />
|
||||
<Stylesheets />
|
||||
<Scripts />
|
||||
<PartialViews />
|
||||
<Macros />
|
||||
<MacroPartialViews />
|
||||
<DictionaryItems />
|
||||
<Languages />
|
||||
<DataTypes />
|
||||
<MediaItems />
|
||||
</umbPackage>
|
||||
95
tests/Umbraco.Tests.AcceptanceTest/package-lock.json
generated
95
tests/Umbraco.Tests.AcceptanceTest/package-lock.json
generated
@@ -7,8 +7,8 @@
|
||||
"name": "acceptancetest",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@umbraco/json-models-builders": "^1.0.6",
|
||||
"@umbraco/playwright-testhelpers": "^2.0.0-beta.11",
|
||||
"@umbraco/json-models-builders": "^2.0.1 ",
|
||||
"@umbraco/playwright-testhelpers": "^2.0.0-beta.12",
|
||||
"camelize": "^1.0.0",
|
||||
"dotenv": "^16.3.1",
|
||||
"faker": "^4.1.0",
|
||||
@@ -87,12 +87,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@playwright/test": {
|
||||
"version": "1.40.1",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz",
|
||||
"integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==",
|
||||
"version": "1.39.0",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.39.0.tgz",
|
||||
"integrity": "sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"playwright": "1.40.1"
|
||||
"playwright": "1.39.0"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
@@ -123,29 +123,34 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.10.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.7.tgz",
|
||||
"integrity": "sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==",
|
||||
"version": "20.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz",
|
||||
"integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"undici-types": "~5.26.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@umbraco/json-models-builders": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@umbraco/json-models-builders/-/json-models-builders-1.0.7.tgz",
|
||||
"integrity": "sha512-cN4C4W9sRoAUSa3GsjqAaLRScdbQ2FKKibI7mlo69iTZ6IQ/tPFRAK0BejJ7gw6a+jAvPVdZnVVSVOVmn8qSMg==",
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@umbraco/json-models-builders/-/json-models-builders-2.0.1.tgz",
|
||||
"integrity": "sha512-VS95Ssmb75lvMcZqr8W2oUUDVz4lFZereKTELmOL8T3vuFNs3Q5wsH5sE8WXdFkzO+b1Qqo7LP7Mk9szETxgvw==",
|
||||
"dependencies": {
|
||||
"camelize": "^1.0.0",
|
||||
"faker": "^4.1.0"
|
||||
"camelize": "^1.0.1",
|
||||
"faker": "^6.6.6"
|
||||
}
|
||||
},
|
||||
"node_modules/@umbraco/json-models-builders/node_modules/faker": {
|
||||
"version": "6.6.6",
|
||||
"resolved": "https://registry.npmjs.org/faker/-/faker-6.6.6.tgz",
|
||||
"integrity": "sha512-9tCqYEDHI5RYFQigXFwF1hnCwcWCOJl/hmll0lr5D2Ljjb0o4wphb69wikeJDz5qCEzXCoPvG6ss5SDP6IfOdg=="
|
||||
},
|
||||
"node_modules/@umbraco/playwright-testhelpers": {
|
||||
"version": "2.0.0-beta.11",
|
||||
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-2.0.0-beta.11.tgz",
|
||||
"integrity": "sha512-SwliAxtSIBJGbZGSDgPqanhC7ul/T1Z3OdFTQlll4eHOwEijhPyTjz17IlHJAnuBRtgF7oUxO6Mle2RaedgOAA==",
|
||||
"version": "2.0.0-beta.12",
|
||||
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-2.0.0-beta.12.tgz",
|
||||
"integrity": "sha512-2lfFCVOMIfzu+cBOohEyc9dgsW5QnxmbKT4r0pXpB2U7DesASQ7Erg0RScxXnPmcjA+geIJ2bMmg7RhdlgJ/yQ==",
|
||||
"dependencies": {
|
||||
"@umbraco/json-models-builders": "^1.0.6",
|
||||
"@umbraco/json-models-builders": "2.0.1",
|
||||
"camelize": "^1.0.0",
|
||||
"faker": "^4.1.0",
|
||||
"form-data": "^4.0.0",
|
||||
@@ -187,12 +192,12 @@
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "1.6.5",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz",
|
||||
"integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
|
||||
"integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.15.4",
|
||||
"follow-redirects": "^1.15.0",
|
||||
"form-data": "^4.0.0",
|
||||
"proxy-from-env": "^1.1.0"
|
||||
}
|
||||
@@ -361,9 +366,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/fastq": {
|
||||
"version": "1.16.0",
|
||||
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
|
||||
"integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
|
||||
"version": "1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
|
||||
"integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"reusify": "^1.0.4"
|
||||
@@ -382,9 +387,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.4",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
|
||||
"integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
|
||||
"version": "1.15.3",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
|
||||
"integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -420,6 +425,20 @@
|
||||
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/glob": {
|
||||
"version": "7.2.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
|
||||
@@ -479,9 +498,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/ignore": {
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
|
||||
"integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
|
||||
"version": "5.2.4",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
|
||||
"integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 4"
|
||||
@@ -736,12 +755,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/playwright": {
|
||||
"version": "1.40.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz",
|
||||
"integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==",
|
||||
"version": "1.39.0",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.39.0.tgz",
|
||||
"integrity": "sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"playwright-core": "1.40.1"
|
||||
"playwright-core": "1.39.0"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
@@ -754,9 +773,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/playwright-core": {
|
||||
"version": "1.40.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz",
|
||||
"integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==",
|
||||
"version": "1.39.0",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz",
|
||||
"integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"playwright-core": "cli.js"
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
"wait-on": "^7.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@umbraco/json-models-builders": "^1.0.6",
|
||||
"@umbraco/playwright-testhelpers": "^2.0.0-beta.11",
|
||||
"@umbraco/json-models-builders": "^2.0.1 ",
|
||||
"@umbraco/playwright-testhelpers": "^2.0.0-beta.12",
|
||||
"camelize": "^1.0.0",
|
||||
"dotenv": "^16.3.1",
|
||||
"faker": "^4.1.0",
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
import {test} from '@umbraco/playwright-testhelpers';
|
||||
import {expect} from '@playwright/test';
|
||||
|
||||
test.describe('Package tests', () => {
|
||||
let packageId = '';
|
||||
const packageName = 'TestName';
|
||||
|
||||
test.beforeEach(async ({umbracoApi}) => {
|
||||
await umbracoApi.package.ensureNameNotExists(packageName);
|
||||
});
|
||||
|
||||
test.afterEach(async ({umbracoApi}) => {
|
||||
await umbracoApi.package.delete(packageId);
|
||||
});
|
||||
|
||||
test('can create a package', async ({umbracoApi}) => {
|
||||
// Act
|
||||
packageId = await umbracoApi.package.create(packageName);
|
||||
|
||||
// Assert
|
||||
expect(await umbracoApi.package.doesExist(packageId)).toBeTruthy();
|
||||
});
|
||||
|
||||
test('can update a package', async ({umbracoApi}) => {
|
||||
// Arrange
|
||||
const wrongPackageName = 'WrongName';
|
||||
await umbracoApi.package.ensureNameNotExists(wrongPackageName);
|
||||
|
||||
// Act
|
||||
packageId = await umbracoApi.package.create(wrongPackageName);
|
||||
const packageData = await umbracoApi.package.get(packageId);
|
||||
packageData.name = packageName;
|
||||
await umbracoApi.package.update(packageId, packageData);
|
||||
|
||||
// Assert
|
||||
const updatedPackageData = await umbracoApi.package.get(packageId);
|
||||
expect(updatedPackageData.name).toEqual(packageName);
|
||||
});
|
||||
|
||||
test('can delete a package', async ({umbracoApi}) => {
|
||||
// Arrange
|
||||
packageId = await umbracoApi.package.create(packageName);
|
||||
|
||||
// Act
|
||||
await umbracoApi.package.delete(packageId);
|
||||
|
||||
// Assert
|
||||
expect(await umbracoApi.package.doesExist(packageId)).toBeFalsy();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,373 @@
|
||||
import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
|
||||
import {expect} from '@playwright/test';
|
||||
import * as fs from 'fs';
|
||||
|
||||
test.describe('Created packages tests', () => {
|
||||
const packageName = 'TestPackage';
|
||||
|
||||
test.beforeEach(async ({umbracoApi, umbracoUi}) => {
|
||||
await umbracoApi.package.ensureNameNotExists(packageName);
|
||||
await umbracoUi.goToBackOffice();
|
||||
await umbracoUi.package.goToSection(ConstantHelper.sections.packages);
|
||||
await umbracoUi.package.clickCreatedTab();
|
||||
});
|
||||
|
||||
test.afterEach(async ({umbracoApi}) => {
|
||||
await umbracoApi.package.ensureNameNotExists(packageName);
|
||||
});
|
||||
|
||||
test('can create a empty package', async ({umbracoUi}) => {
|
||||
// Act
|
||||
await umbracoUi.package.clickCreatePackageButton();
|
||||
await umbracoUi.package.enterPackageName(packageName);
|
||||
await umbracoUi.package.clickSaveButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.isPackageNameVisible(packageName);
|
||||
});
|
||||
|
||||
test('can update package name', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const wrongPackageName = 'WrongPackageName';
|
||||
await umbracoApi.package.ensureNameNotExists(wrongPackageName);
|
||||
await umbracoApi.package.createEmptyPackage(wrongPackageName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(wrongPackageName);
|
||||
await umbracoUi.package.enterPackageName(packageName);
|
||||
await umbracoUi.package.clickSaveButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.isPackageNameVisible(packageName);
|
||||
expect(umbracoApi.package.doesNameExist(packageName)).toBeTruthy();
|
||||
});
|
||||
|
||||
test('can delete a package', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickDeleteButtonForPackageName(packageName);
|
||||
await umbracoUi.package.clickDeleteExactLabel();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.isPackageNameVisible(packageName, false);
|
||||
expect(await umbracoApi.package.doesNameExist(packageName)).toBeFalsy();
|
||||
});
|
||||
|
||||
// TODO: Update the locators for the choose button. If it is updated or not
|
||||
test('can create a package with content', async ({page, umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const documentTypeName = 'TestDocumentType';
|
||||
const documentName = 'TestDocument';
|
||||
await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
const documentTypeId = await umbracoApi.documentType.createDefaultDocumentTypeWithAllowAsRoot(documentTypeName);
|
||||
const documentId = await umbracoApi.document.createDefaultDocument(documentName, documentTypeId);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
// The frontend has updated the button name to "Choose" of "Add". But they are a bit unsure if they want to change it to select instead.
|
||||
// So for the moment I have used the page instead of our UiHelper. Because it is easier to change the locator.
|
||||
// await umbracoUi.package.clickAddContentToPackageButton();
|
||||
await page.locator('[label="Content"] >> [label="Choose"]').click();
|
||||
await umbracoUi.package.clickLabelWithName(documentName);
|
||||
await umbracoUi.package.clickChooseBtn();
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.contentNodeId == documentId).toBeTruthy();
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(documentName + ' ' + documentId)).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
|
||||
});
|
||||
|
||||
// Currently unable to run this test. Because you are not able to save a mediaId
|
||||
test.skip('can create a package with media', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const mediaTypeName = 'TestMediaType';
|
||||
const mediaName = 'TestMedia';
|
||||
await umbracoApi.mediaType.ensureNameNotExists(mediaTypeName);
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
const mediaTypeId = await umbracoApi.mediaType.createDefaultMediaType(mediaTypeName);
|
||||
const mediaId = await umbracoApi.media.createDefaultMedia(mediaName, mediaTypeId);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
await umbracoUi.package.clickAddMediaToPackageButton();
|
||||
await umbracoUi.package.clickCaretButton();
|
||||
await umbracoUi.package.clickLabelWithName(mediaName);
|
||||
await umbracoUi.package.clickSubmitButton();
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(mediaTypeName + ' ' + mediaId)).toBeTruthy();
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.mediaIds[0] == mediaId).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.mediaType.ensureNameNotExists(mediaTypeName);
|
||||
});
|
||||
|
||||
test.skip('can create a package with document types', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const documentTypeName = 'TestDocumentType';
|
||||
await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
const documentTypeId = await umbracoApi.documentType.createDefaultDocumentTypeWithAllowAsRoot(documentTypeName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
await umbracoUi.package.clickAddDocumentTypeToPackageButton();
|
||||
await umbracoUi.package.clickCaretButton();
|
||||
await umbracoUi.package.clickLabelWithName(documentTypeName);
|
||||
await umbracoUi.package.clickSubmitButton();
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(documentTypeName + ' ' + documentTypeId)).toBeTruthy();
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.documentTypes[0] == documentTypeId).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
|
||||
});
|
||||
|
||||
// TODO: Remove .skip when the test is able to run. Currently waiting for button
|
||||
test.skip('can create a package with media types', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const mediaTypeName = 'TestMediaType';
|
||||
await umbracoApi.mediaType.ensureNameNotExists(mediaTypeName);
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
const mediaTypeId = await umbracoApi.mediaType.createDefaultMediaType(mediaTypeName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
await umbracoUi.package.clickAddMediaTypeToPackageButton();
|
||||
await umbracoUi.package.clickCaretButton();
|
||||
await umbracoUi.package.clickLabelWithName(mediaTypeName);
|
||||
await umbracoUi.package.clickSubmitButton()
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(mediaTypeName + ' ' + mediaTypeId)).toBeTruthy();
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.mediaTypes[0] == mediaTypeId).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.mediaType.ensureNameNotExists(mediaTypeName);
|
||||
});
|
||||
|
||||
// TODO: Remove .skip when the test is able to run. After adding a language to a package and saving. The language is not saved or anything.
|
||||
test.skip('can create a package with languages', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const languageId = await umbracoApi.language.createDefaultDanishLanguage();
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
await umbracoUi.reloadPage();
|
||||
const languageData = await umbracoApi.language.get(languageId);
|
||||
const languageName = languageData.name;
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
await umbracoUi.package.clickAddLanguageToPackageButton();
|
||||
await umbracoUi.package.clickCaretButton();
|
||||
await umbracoUi.package.clickLabelWithName(languageName);
|
||||
await umbracoUi.package.clickSubmitButton()
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(languageName + ' ' + languageId)).toBeTruthy();
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.languages[0] == languageId).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.language.ensureNameNotExists(languageName);
|
||||
});
|
||||
|
||||
// TODO: Remove .skip when the test is able to run. Currently waiting for button
|
||||
test.skip('can create a package with dictionary', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const dictionaryName = 'TestDictionary';
|
||||
await umbracoApi.dictionary.createDefaultDictionary(dictionaryName);
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
await umbracoUi.package.clickAddDictionaryToPackageButton();
|
||||
await umbracoUi.package.clickCaretButton();
|
||||
await umbracoUi.package.clickLabelWithName(dictionaryName);
|
||||
await umbracoUi.package.clickSubmitButton()
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(dictionaryName)).toBeTruthy();
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.dictionaryItems[0] == dictionaryName).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.dictionary.ensureNameNotExists(dictionaryName);
|
||||
});
|
||||
|
||||
// TODO: Remove .skip when the test is able to run. After adding a dataType to a package and saving. The datatype is not saved or anything.
|
||||
test.skip('can create a package with data types', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const dataTypeName = 'TestDataType';
|
||||
const dataTypeId = await umbracoApi.dataType.createDateTypeDataType(dataTypeName);
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
await umbracoUi.package.clickAddDataTypesToPackageButton();
|
||||
await umbracoUi.package.clickCaretButton();
|
||||
await umbracoUi.package.clickLabelWithName(dataTypeName);
|
||||
await umbracoUi.package.clickSubmitButton()
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(dataTypeName)).toBeTruthy();
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.dataTypes[0] == dataTypeId).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.dictionary.ensureNameNotExists(dataTypeName);
|
||||
});
|
||||
|
||||
// TODO: Remove .skip when the test is able to run. Currently waiting for button
|
||||
test.skip('can create a package with templates', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const templateName = 'TestTemplate';
|
||||
const templateId = await umbracoApi.template.createDefaultTemplate(templateName);
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
await umbracoUi.package.clickAddTemplatesToPackageButton();
|
||||
await umbracoUi.package.clickCaretButton();
|
||||
await umbracoUi.package.clickLabelWithName(templateName);
|
||||
await umbracoUi.package.clickSubmitButton()
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(templateName)).toBeTruthy();
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.templates[0] == templateId).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.template.ensureNameNotExists(templateName);
|
||||
});
|
||||
|
||||
// TODO: Remove .skip when the test is able to run. Currently waiting for button
|
||||
test.skip('can create a package with stylesheets', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const stylesheetName = 'TestStylesheet';
|
||||
const stylesheetId = await umbracoApi.stylesheet.createDefaultStylesheet(stylesheetName);
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
await umbracoUi.package.clickAddStylesheetToPackageButton();
|
||||
await umbracoUi.package.clickCaretButton();
|
||||
await umbracoUi.package.clickLabelWithName(stylesheetName);
|
||||
await umbracoUi.package.clickSubmitButton()
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(stylesheetName)).toBeTruthy();
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.stylesheets[0] == stylesheetId).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.stylesheet.ensureNameNotExists(stylesheetName);
|
||||
});
|
||||
|
||||
// TODO: Remove .skip when the test is able to run. Currently waiting for button
|
||||
test.skip('can create a package with scripts', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const scriptName = 'TestScripts';
|
||||
const scriptId = await umbracoApi.script.createDefaultScript(scriptName);
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
await umbracoUi.package.clickAddScriptToPackageButton();
|
||||
await umbracoUi.package.clickCaretButton();
|
||||
await umbracoUi.package.clickLabelWithName(scriptName);
|
||||
await umbracoUi.package.clickSubmitButton()
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(scriptName)).toBeTruthy();
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.scripts[0] == scriptId).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.script.ensureNameNotExists(scriptName);
|
||||
});
|
||||
|
||||
// TODO: Remove .skip when the test is able to run. Currently waiting for button
|
||||
test.skip('can create a package with partial views', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const partialViewName = 'TestPartialView';
|
||||
const partialViewId = await umbracoApi.partialView.createDefaultPartialView(partialViewName);
|
||||
await umbracoApi.package.createEmptyPackage(packageName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
await umbracoUi.package.clickAddPartialViewToPackageButton();
|
||||
await umbracoUi.package.clickCaretButton();
|
||||
await umbracoUi.package.clickLabelWithName(partialViewName);
|
||||
await umbracoUi.package.clickSubmitButton()
|
||||
await umbracoUi.package.clickSaveChangesToPackageButton();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
expect(umbracoUi.package.isButtonWithNameVisible(partialViewName)).toBeTruthy();
|
||||
const packageData = await umbracoApi.package.getByName(packageName);
|
||||
expect(packageData.partialViews[0] == partialViewId).toBeTruthy();
|
||||
|
||||
// Clean
|
||||
await umbracoApi.package.ensureNameNotExists(packageName);
|
||||
});
|
||||
|
||||
// Currently you are not able to download a package
|
||||
test('can download a package', async ({umbracoApi, umbracoUi}) => {
|
||||
// Arrange
|
||||
const packageId = await umbracoApi.package.createEmptyPackage(packageName);
|
||||
await umbracoUi.reloadPage();
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickExistingPackageName(packageName);
|
||||
const packageData = await umbracoUi.package.downloadPackage(packageId);
|
||||
// Reads the packageFixture we have in the fixture library
|
||||
const path = require('path');
|
||||
const filePath = path.resolve('./fixtures/packageLibrary/package.xml');
|
||||
const packageFixture = fs.readFileSync(filePath);
|
||||
|
||||
// Assert
|
||||
expect(packageData).toMatch(packageFixture.toString().trim());
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,16 @@
|
||||
import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
|
||||
|
||||
test.describe('Installed packages tests', () => {
|
||||
// We can't install any packages so we do not have any installed.
|
||||
test('can see no package have been installed', async ({page, umbracoUi}) => {
|
||||
// Arrange
|
||||
await umbracoUi.goToBackOffice();
|
||||
await umbracoUi.package.goToSection(ConstantHelper.sections.packages);
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickInstalledTab();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.isTextNoPackagesHaveBeenInstalledVisible();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,16 @@
|
||||
import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
|
||||
|
||||
test.describe('Packages tests', () => {
|
||||
// The MarketPlace is a iFrame we are using from the DXP team, so it is not something we should test. This test is just checking if we have the IFrame
|
||||
test('can see the marketplace', async ({umbracoUi}) => {
|
||||
// Arrange
|
||||
await umbracoUi.goToBackOffice();
|
||||
await umbracoUi.package.goToSection(ConstantHelper.sections.packages);
|
||||
|
||||
// Act
|
||||
await umbracoUi.package.clickPackagesTab();
|
||||
|
||||
// Assert
|
||||
await umbracoUi.package.isMarketPlaceIFrameVisible();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user