Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,102 +2,100 @@
import {expect} from "@playwright/test";

const dataTypeName = 'Approved Color';
test.describe(`${dataTypeName} tests`, () => {
let dataTypeDefaultData = null;
let dataTypeData = null;
const colorValue = '#ffffff';
const colorLabel = 'TestColor';
let dataTypeDefaultData = null;
let dataTypeData = null;
const colorValue = '#ffffff';
const colorLabel = 'TestColor';

test.beforeEach(async ({umbracoUi, umbracoApi}) => {
await umbracoUi.goToBackOffice();
await umbracoUi.dataType.goToSettingsTreeItem('Data Types');
dataTypeDefaultData = await umbracoApi.dataType.getByName(dataTypeName);
});
test.beforeEach(async ({umbracoUi, umbracoApi}) => {
await umbracoUi.goToBackOffice();
await umbracoUi.dataType.goToSettingsTreeItem('Data Types');
dataTypeDefaultData = await umbracoApi.dataType.getByName(dataTypeName);
});

test.afterEach(async ({umbracoApi}) => {
if (dataTypeDefaultData !== null) {
await umbracoApi.dataType.update(dataTypeDefaultData.id, dataTypeDefaultData);
}
});
test.afterEach(async ({umbracoApi}) => {
if (dataTypeDefaultData !== null) {
await umbracoApi.dataType.update(dataTypeDefaultData.id, dataTypeDefaultData);
}
});

test('can include label', async ({umbracoApi, umbracoUi}) => {
// Arrange
const expectedDataTypeValues = [
{
"alias": "useLabel",
"value": true
}
];
// Remove all existing values
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
dataTypeData.values = [];
await umbracoApi.dataType.update(dataTypeData.id, dataTypeData);
await umbracoUi.dataType.goToDataType(dataTypeName);
test('can include label', async ({umbracoApi, umbracoUi}) => {
// Arrange
const expectedDataTypeValues = [
{
"alias": "useLabel",
"value": true
}
];
// Remove all existing values
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
dataTypeData.values = [];
await umbracoApi.dataType.update(dataTypeData.id, dataTypeData);
await umbracoUi.dataType.goToDataType(dataTypeName);

// Act
await umbracoUi.dataType.clickIncludeLabelsSlider();
await umbracoUi.dataType.clickSaveButton();
// Act
await umbracoUi.dataType.clickIncludeLabelsSlider();
await umbracoUi.dataType.clickSaveButton();

// Assert
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
expect(dataTypeData.values).toEqual(expectedDataTypeValues);
});
// Assert
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
expect(dataTypeData.values).toEqual(expectedDataTypeValues);
});

//TODO: Remove skip when the frontend is ready
test.skip('can add color', async ({umbracoApi, umbracoUi}) => {
// Arrange
const expectedDataTypeValues = [
{
"alias": "items",
"value": [
{
"value": colorValue,
"label": colorLabel
}
]
}
];
// Remove all existing values
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
dataTypeData.values = [];
await umbracoApi.dataType.update(dataTypeData.id, dataTypeData);
await umbracoUi.dataType.goToDataType(dataTypeName);
//TODO: Remove skip when the frontend is ready
test.skip('can add color', async ({umbracoApi, umbracoUi}) => {
// Arrange
const expectedDataTypeValues = [
{
"alias": "items",
"value": [
{
"value": colorValue,
"label": colorLabel
}
]
}
];
// Remove all existing values
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
dataTypeData.values = [];
await umbracoApi.dataType.update(dataTypeData.id, dataTypeData);
await umbracoUi.dataType.goToDataType(dataTypeName);

// Act
await umbracoUi.dataType.addColor(colorValue, colorLabel);
await umbracoUi.dataType.clickSaveButton();
// Act
await umbracoUi.dataType.addColor(colorValue, colorLabel);
await umbracoUi.dataType.clickSaveButton();

// Assert
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
expect(dataTypeData.values).toEqual(expectedDataTypeValues);
});
// Assert
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
expect(dataTypeData.values).toEqual(expectedDataTypeValues);
});

// TODO: remove .skip when the frontend is able to display the added color. Currently the added colors are not displayed after reloading page
test.skip('can remove color', async ({umbracoApi, umbracoUi}) => {
// Arrange
const removedDataTypeValues = [
{
"alias": "items",
"value": [
{
"value": colorValue,
"label": colorLabel
}
]
}
];
// Remove all existing values and add a color to remove
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
dataTypeData.values = removedDataTypeValues;
await umbracoApi.dataType.update(dataTypeData.id, dataTypeData);
await umbracoUi.dataType.goToDataType(dataTypeName);
// TODO: remove .skip when the frontend is able to display the added color. Currently the added colors are not displayed after reloading page
test.skip('can remove color', async ({umbracoApi, umbracoUi}) => {
// Arrange
const removedDataTypeValues = [
{
"alias": "items",
"value": [
{
"value": colorValue,
"label": colorLabel
}
]
}
];
// Remove all existing values and add a color to remove
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
dataTypeData.values = removedDataTypeValues;
await umbracoApi.dataType.update(dataTypeData.id, dataTypeData);
await umbracoUi.dataType.goToDataType(dataTypeName);

// Act
await umbracoUi.dataType.removeColorByValue(colorValue);
await umbracoUi.dataType.clickSaveButton();
// Act
await umbracoUi.dataType.removeColorByValue(colorValue);
await umbracoUi.dataType.clickSaveButton();

// Assert
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
expect(dataTypeData.values).toEqual([]);
});
// Assert
dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
expect(dataTypeData.values).toEqual([]);
});
Original file line number Diff line number Diff line change
@@ -1,83 +1,81 @@
import {test} from '@umbraco/playwright-testhelpers';
import {expect} from "@playwright/test";

test.describe('Data Types basic functionalities tests', () => {
const dataTypeName = 'TestDataType';
const editorAlias = 'Umbraco.DateTime';
const dataTypeName = 'TestDataType';
const editorAlias = 'Umbraco.DateTime';

test.beforeEach(async ({umbracoApi, umbracoUi}) => {
await umbracoApi.dataType.ensureNameNotExists(dataTypeName);
await umbracoUi.goToBackOffice();
await umbracoUi.dataType.goToSettingsTreeItem('Data Types');
});
test.beforeEach(async ({umbracoApi, umbracoUi}) => {
await umbracoApi.dataType.ensureNameNotExists(dataTypeName);
await umbracoUi.goToBackOffice();
await umbracoUi.dataType.goToSettingsTreeItem('Data Types');
});

test.afterEach(async ({umbracoApi}) => {
await umbracoApi.dataType.ensureNameNotExists(dataTypeName);
});
test.afterEach(async ({umbracoApi}) => {
await umbracoApi.dataType.ensureNameNotExists(dataTypeName);
});

test('can create a data type', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
// Act
await umbracoUi.dataType.clickActionsMenuAtRoot();
await umbracoUi.dataType.clickCreateButton();
await umbracoUi.dataType.clickNewDataTypeThreeDotsButton();
await umbracoUi.dataType.enterDataTypeName(dataTypeName);
await umbracoUi.dataType.clickSaveButton();
test('can create a data type', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
// Act
await umbracoUi.dataType.clickActionsMenuAtRoot();
await umbracoUi.dataType.clickCreateButton();
await umbracoUi.dataType.clickNewDataTypeThreeDotsButton();
await umbracoUi.dataType.enterDataTypeName(dataTypeName);
await umbracoUi.dataType.clickSaveButton();

// Assert
await umbracoUi.dataType.isSuccessNotificationVisible();
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeTruthy();
});
// Assert
await umbracoUi.dataType.isSuccessNotificationVisible();
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeTruthy();
});

test('can update a data type name', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
// Arrange
const wrongDataTypeName = 'Wrong Data Type';
await umbracoApi.dataType.ensureNameNotExists(wrongDataTypeName);
await umbracoApi.dataType.create(wrongDataTypeName, editorAlias, []);
expect(await umbracoApi.dataType.doesNameExist(wrongDataTypeName)).toBeTruthy();
test('can update a data type name', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
// Arrange
const wrongDataTypeName = 'Wrong Data Type';
await umbracoApi.dataType.ensureNameNotExists(wrongDataTypeName);
await umbracoApi.dataType.create(wrongDataTypeName, editorAlias, []);
expect(await umbracoApi.dataType.doesNameExist(wrongDataTypeName)).toBeTruthy();

// Act
await umbracoUi.dataType.goToDataType(wrongDataTypeName);
await umbracoUi.dataType.enterDataTypeName(dataTypeName);
await umbracoUi.dataType.clickSaveButton();
// Act
await umbracoUi.dataType.goToDataType(wrongDataTypeName);
await umbracoUi.dataType.enterDataTypeName(dataTypeName);
await umbracoUi.dataType.clickSaveButton();

// Assert
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeTruthy();
expect(await umbracoApi.dataType.doesNameExist(wrongDataTypeName)).toBeFalsy();
});
// Assert
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeTruthy();
expect(await umbracoApi.dataType.doesNameExist(wrongDataTypeName)).toBeFalsy();
});

test.skip('can delete a data type', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
// Arrange
await umbracoApi.dataType.create(dataTypeName, editorAlias, []);
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeTruthy();
test.skip('can delete a data type', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
// Arrange
await umbracoApi.dataType.create(dataTypeName, editorAlias, []);
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeTruthy();

// Act
await umbracoUi.dataType.clickRootFolderCaretButton();
await umbracoUi.dataType.deleteDataType(dataTypeName);
// Act
await umbracoUi.dataType.clickRootFolderCaretButton();
await umbracoUi.dataType.deleteDataType(dataTypeName);

// Assert
await umbracoUi.dataType.isSuccessNotificationVisible();
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeFalsy();
});
// Assert
await umbracoUi.dataType.isSuccessNotificationVisible();
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeFalsy();
});

test.skip('can change Property Editor in a data type', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
// Arrange
const updatedEditorName = 'Text Area';
const updatedEditorAlias = 'Umbraco.TextArea';
const updatedEditorUiAlias = 'Umb.PropertyEditorUi.TextArea';
test.skip('can change Property Editor in a data type', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
// Arrange
const updatedEditorName = 'Text Area';
const updatedEditorAlias = 'Umbraco.TextArea';
const updatedEditorUiAlias = 'Umb.PropertyEditorUi.TextArea';

await umbracoApi.dataType.create(dataTypeName, editorAlias, []);
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeTruthy();
await umbracoApi.dataType.create(dataTypeName, editorAlias, []);
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeTruthy();

// Act
await umbracoUi.dataType.goToDataType(dataTypeName);
await umbracoUi.dataType.clickChangeButton();
await umbracoUi.dataType.selectPropertyEditorUIByName(updatedEditorName);
await umbracoUi.dataType.clickSaveButton();
// Act
await umbracoUi.dataType.goToDataType(dataTypeName);
await umbracoUi.dataType.clickChangeButton();
await umbracoUi.dataType.selectPropertyEditorUIByName(updatedEditorName);
await umbracoUi.dataType.clickSaveButton();

// Assert
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeTruthy();
const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
expect(dataTypeData.editorAlias).toBe(updatedEditorAlias);
expect(dataTypeData.editorUiAlias).toBe(updatedEditorUiAlias);
});
// Assert
expect(await umbracoApi.dataType.doesNameExist(dataTypeName)).toBeTruthy();
const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
expect(dataTypeData.editorAlias).toBe(updatedEditorAlias);
expect(dataTypeData.editorUiAlias).toBe(updatedEditorUiAlias);
});
Loading