diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/DataType/DataType.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/DataType/DataType.spec.ts new file mode 100644 index 0000000000..9d0477df57 --- /dev/null +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/DataType/DataType.spec.ts @@ -0,0 +1,99 @@ +import {test} from "@umbraco/playwright-testhelpers"; +import {expect} from "@playwright/test"; + +test.describe('DataType tests', () => { + const dataTypeName = "TestType"; + const propertyEditorAlias = "Umbraco.DateTime"; + const dataTypeData = [ + { + "alias": "tester", + "value": "Howdy" + } + ]; + + test.beforeEach(async ({page, umbracoApi}) => { + await umbracoApi.dataType.ensureDataTypeNameNotExistsAtRoot(dataTypeName); + }); + + test.afterEach(async ({page, umbracoApi}) => { + await umbracoApi.dataType.ensureDataTypeNameNotExistsAtRoot(dataTypeName); + }); + + test('can create dataType', async ({page, umbracoApi, umbracoUi}) => { + await umbracoApi.dataType.createDataType(dataTypeName, propertyEditorAlias, dataTypeData); + + // Assert + await expect(umbracoApi.dataType.doesDataTypeWithNameExistAtRoot(dataTypeName)).toBeTruthy(); + }); + + test('can update dataType', async ({page, umbracoApi, umbracoUi}) => { + await umbracoApi.dataType.createDataType(dataTypeName, propertyEditorAlias, []); + + const dataType = await umbracoApi.dataType.getDataTypeByNameAtRoot(dataTypeName); + + dataType.values = dataTypeData; + await umbracoApi.dataType.updateDataTypeById(dataType.id, dataTypeData); + + // Assert + // Checks if the data type was updated + const updatedDataType = await umbracoApi.dataType.getDataTypeByNameAtRoot(dataTypeName); + await expect(updatedDataType.values = dataTypeData).toBeTruthy(); + }); + + test('can delete dataType', async ({page, umbracoApi, umbracoUi}) => { + await umbracoApi.dataType.createDataType(dataTypeName, propertyEditorAlias, dataTypeData); + + await expect(await umbracoApi.dataType.doesDataTypeWithNameExistAtRoot(dataTypeName)).toBeTruthy(); + + await umbracoApi.dataType.deleteDataTypeByNameAtRoot(dataTypeName); + + // Assert + await expect(await umbracoApi.dataType.doesDataTypeWithNameExistAtRoot(dataTypeName)).toBeFalsy(); + }); + + test('can move a dataType to a folder', async ({page, umbracoApi, umbracoUi}) => { + const folderName = 'FolderToMoveToo'; + + await umbracoApi.dataType.ensureDataTypeNameNotExistsAtRoot(folderName); + + await umbracoApi.dataType.createDataType(dataTypeName, propertyEditorAlias, dataTypeData); + await umbracoApi.dataType.createDataTypeFolder(folderName); + + const dataType = await umbracoApi.dataType.getDataTypeByNameAtRoot(dataTypeName); + const dataTypeFolder = await umbracoApi.dataType.getDataTypeFolderByName(folderName); + + await umbracoApi.dataType.moveDataTypeToFolderById(dataType.id, dataTypeFolder.id); + + // Assert + const dataTypeInFolder = await umbracoApi.dataType.getDataTypeChildrenById(dataTypeFolder.id); + await expect(dataTypeInFolder.items[0].name === dataTypeName).toBeTruthy(); + // Since the dataType was moved it should not be in the root anymore + await expect(await umbracoApi.dataType.doesDataTypeWithNameExistAtRoot(dataTypeName)).toBeFalsy(); + + // Clean + await umbracoApi.dataType.ensureDataTypeNameNotExistsAtRoot(folderName); + }); + + test('can copy a dataType to a folder', async ({page, umbracoApi, umbracoUi}) => { + const folderName = 'FolderToCopyToo'; + + await umbracoApi.dataType.ensureDataTypeNameNotExistsAtRoot(folderName); + + await umbracoApi.dataType.createDataType(dataTypeName, propertyEditorAlias, dataTypeData); + await umbracoApi.dataType.createDataTypeFolder(folderName); + + const dataType = await umbracoApi.dataType.getDataTypeByNameAtRoot(dataTypeName); + const dataTypeFolder = await umbracoApi.dataType.getDataTypeFolderByName(folderName); + + await umbracoApi.dataType.copyDataTypeToFolderById(dataType.id, dataTypeFolder.id); + + const dataTypeInFolder = await umbracoApi.dataType.getDataTypeChildrenById(dataTypeFolder.id); + + // Assert + await expect(dataTypeInFolder.items[0].name === dataTypeName + ' (copy)').toBeTruthy(); + await expect(await umbracoApi.dataType.doesDataTypeWithNameExistAtRoot(dataTypeName)).toBeTruthy(); + + // Clean + await umbracoApi.dataType.ensureDataTypeNameNotExistsAtRoot(folderName); + }); +}); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/DataType/DataTypeFolder.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/DataType/DataTypeFolder.spec.ts new file mode 100644 index 0000000000..6dba86ee93 --- /dev/null +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/DataType/DataTypeFolder.spec.ts @@ -0,0 +1,50 @@ +import {test} from "@umbraco/playwright-testhelpers"; +import {expect} from "@playwright/test"; + +test.describe('DataTypeFolder tests', () => { + const dataTypeFolderName = "TestTypeFolder"; + + test.beforeEach(async ({page, umbracoApi}) => { + await umbracoApi.dataType.ensureDataTypeNameNotExistsAtRoot(dataTypeFolderName); + }); + + test.afterEach(async ({page, umbracoApi}) => { + await umbracoApi.dataType.ensureDataTypeNameNotExistsAtRoot(dataTypeFolderName); + }); + + test('can create a dataType folder', async ({page, umbracoApi, umbracoUi}) => { + await umbracoApi.dataType.createDataTypeFolder(dataTypeFolderName); + + // Assert + await expect(umbracoApi.dataType.doesDataTypeWithNameExistAtRoot(dataTypeFolderName)).toBeTruthy(); + }); + + test('can update a dataType folder', async ({page, umbracoApi, umbracoUi}) => { + const oldDataTypeFolderName = 'Oldie'; + + await umbracoApi.dataType.createDataTypeFolder(oldDataTypeFolderName); + + const dataTypeFolder = await umbracoApi.dataType.getDataTypeFolderByName(oldDataTypeFolderName); + + // Updates the dataType folder + dataTypeFolder.name = dataTypeFolderName; + await umbracoApi.dataType.updateDataTypeFolderById(dataTypeFolder.id, dataTypeFolder); + + // Assert + await umbracoApi.dataType.doesDataTypeWithNameExistAtRoot(dataTypeFolderName); + // Checks if the dataType folder was updated + const newDataTypeFolderName = await umbracoApi.dataType.getDataTypeFolderById(dataTypeFolder.id); + await expect(newDataTypeFolderName.name == dataTypeFolderName).toBeTruthy(); + }); + + test('can delete a dataType folder', async ({page, umbracoApi, umbracoUi}) => { + await umbracoApi.dataType.createDataTypeFolder(dataTypeFolderName); + + await expect(umbracoApi.dataType.doesDataTypeWithNameExistAtRoot(dataTypeFolderName)).toBeTruthy(); + + await umbracoApi.dataType.deleteDataTypeFolderByName(dataTypeFolderName); + + // Assert + await expect(await umbracoApi.dataType.doesDataTypeWithNameExistAtRoot(dataTypeFolderName)).toBeFalsy(); + }); +}); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/appsettings.json b/tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/appsettings.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/appsettings.json @@ -0,0 +1 @@ +{} \ No newline at end of file