Implemented tabs test
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
/// <reference types="Cypress" />
|
||||
import {
|
||||
DocumentTypeBuilder,
|
||||
ContentBuilder,
|
||||
AliasHelper
|
||||
} from 'umbraco-cypress-testhelpers';
|
||||
|
||||
context('Url Picker', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
cy.umbracoLogin(Cypress.env('username'), Cypress.env('password'), false);
|
||||
});
|
||||
|
||||
it('Test Url Picker', () => {
|
||||
|
||||
const urlPickerDocTypeName = 'Url Picker Test';
|
||||
const pickerDocTypeAlias = AliasHelper.toAlias(urlPickerDocTypeName);
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(urlPickerDocTypeName);
|
||||
cy.deleteAllContent();
|
||||
const pickerDocType = new DocumentTypeBuilder()
|
||||
.withName(urlPickerDocTypeName)
|
||||
.withAlias(pickerDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(pickerDocTypeAlias)
|
||||
.addGroup()
|
||||
.withName('ContentPickerGroup')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias('picker')
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
|
||||
cy.saveDocumentType(pickerDocType);
|
||||
cy.editTemplate(urlPickerDocTypeName, '@inherits Umbraco.Web.Mvc.UmbracoViewPage<ContentModels.UrlPickerTest>' +
|
||||
'\n@using ContentModels = Umbraco.Web.PublishedModels;' +
|
||||
'\n@{' +
|
||||
'\n Layout = null;' +
|
||||
'\n}' +
|
||||
'\n@foreach(var link in @Model.Picker)' +
|
||||
'\n{' +
|
||||
'\n <a href="@link.Url">@link.Name</a>' +
|
||||
'\n}');
|
||||
// Create content with url picker
|
||||
cy.get('li .umb-tree-root:contains("Content")').should("be.visible").rightclick();
|
||||
cy.get('[data-element="action-create"]').click();
|
||||
cy.get('[data-element="action-create-' + pickerDocTypeAlias + '"] > .umb-action-link').click();
|
||||
// Fill out content
|
||||
cy.umbracoEditorHeaderName('UrlPickerContent');
|
||||
cy.umbracoButtonByLabelKey('buttons_saveAndPublish').click();
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
cy.get('.umb-node-preview-add').click();
|
||||
// Should really try and find a better way to do this, but umbracoTreeItem tries to click the content pane in the background
|
||||
cy.get('#treePicker li:first', {timeout: 6000}).click();
|
||||
cy.get('.umb-editor-footer-content__right-side > [button-style="success"] > .umb-button > .btn > .umb-button__content').click();
|
||||
cy.get('.umb-node-preview__name').should('be.visible');
|
||||
//Save and publish
|
||||
cy.umbracoButtonByLabelKey('buttons_saveAndPublish').click();
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
//Waiting to ensure we have saved properly before leaving
|
||||
cy.reload();
|
||||
//Assert
|
||||
cy.get('.umb-notifications__notifications > .alert-error').should('not.exist');
|
||||
//Editing template with some content
|
||||
|
||||
//Testing if the edits match the expected results
|
||||
const expected = '<a href="/">UrlPickerContent</a>';
|
||||
cy.umbracoVerifyRenderedViewContent('/', expected, true).should('be.true');
|
||||
//clean
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(urlPickerDocTypeName);
|
||||
cy.umbracoEnsureTemplateNameNotExists(urlPickerDocTypeName);
|
||||
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,97 @@
|
||||
/// <reference types="Cypress" />
|
||||
import {
|
||||
AliasHelper,
|
||||
ApprovedColorPickerDataTypeBuilder,
|
||||
} from 'umbraco-cypress-testhelpers';
|
||||
|
||||
context('DataTypes', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
cy.umbracoLogin(Cypress.env('username'), Cypress.env('password'), false);
|
||||
});
|
||||
|
||||
it('Tests Approved Colors', () => {
|
||||
cy.deleteAllContent();
|
||||
const name = 'Approved Colour Test';
|
||||
const alias = AliasHelper.toAlias(name);
|
||||
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(name);
|
||||
cy.umbracoEnsureDataTypeNameNotExists(name);
|
||||
|
||||
const pickerDataType = new ApprovedColorPickerDataTypeBuilder()
|
||||
.withName(name)
|
||||
.withPrevalues(['000000', 'FF0000'])
|
||||
.build()
|
||||
|
||||
//umbracoMakeDocTypeWithDataTypeAndContent(name, alias, pickerDataType);
|
||||
cy.umbracoCreateDocTypeWithContent(name, alias, pickerDataType);
|
||||
|
||||
// Act
|
||||
// Enter content
|
||||
cy.umbracoRefreshContentTree();
|
||||
cy.umbracoTreeItem("content", [name]).click();
|
||||
//Pick a colour
|
||||
cy.get('.btn-000000').click();
|
||||
//Save
|
||||
cy.umbracoButtonByLabelKey('buttons_saveAndPublish').click();
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
//Editing template with some content
|
||||
cy.editTemplate(name, '@inherits Umbraco.Web.Mvc.UmbracoViewPage<ContentModels.ApprovedColourTest>' +
|
||||
'\n@using ContentModels = Umbraco.Web.PublishedModels;' +
|
||||
'\n@{' +
|
||||
'\n Layout = null;' +
|
||||
'\n}' +
|
||||
'\n<p style="color:@Model.UmbracoTest">Lorem ipsum dolor sit amet</p>');
|
||||
|
||||
//Assert
|
||||
const expected = `<p style="color:000000" > Lorem ipsum dolor sit amet </p>`;
|
||||
cy.umbracoVerifyRenderedViewContent('/', expected, true).should('be.true');
|
||||
|
||||
//Pick another colour to verify both work
|
||||
cy.get('.btn-FF0000').click();
|
||||
//Save
|
||||
cy.umbracoButtonByLabelKey('buttons_saveAndPublish').click();
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
//Assert
|
||||
const expected2 = '<p style="color:FF0000">Lorem ipsum dolor sit amet</p>';
|
||||
cy.umbracoVerifyRenderedViewContent('/', expected2, true).should('be.true');
|
||||
|
||||
//Clean
|
||||
cy.umbracoEnsureDataTypeNameNotExists(name);
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(name);
|
||||
cy.umbracoEnsureTemplateNameNotExists(name);
|
||||
});
|
||||
|
||||
// it('Tests Checkbox List', () => {
|
||||
// const name = 'CheckBox List';
|
||||
// const alias = AliasHelper.toAlias(name);
|
||||
|
||||
// cy.umbracoEnsureDocumentTypeNameNotExists(name);
|
||||
// cy.umbracoEnsureDataTypeNameNotExists(name);
|
||||
|
||||
// const pickerDataType = new CheckBoxListDataTypeBuilder()
|
||||
// .withName(name)
|
||||
// .withPrevalues(['Choice 1', 'Choice 2'])
|
||||
// .build()
|
||||
|
||||
// cy.umbracoCreateDocTypeWithContent(name, alias, pickerDataType);
|
||||
// // Act
|
||||
// // Enter content
|
||||
// cy.umbracoRefreshContentTree();
|
||||
// cy.umbracoTreeItem("content", [name]).click();
|
||||
// //Check box 1
|
||||
// cy.get(':nth-child(1) > umb-checkbox.ng-isolate-scope > .checkbox > .umb-form-check__symbol > .umb-form-check__state > .umb-form-check__check')
|
||||
// .click();
|
||||
// //Save
|
||||
// cy.umbracoButtonByLabelKey('buttons_saveAndPublish').click();
|
||||
// cy.umbracoSuccessNotification().should('be.visible');
|
||||
|
||||
// //Edit template with content
|
||||
// cy.editTemplate(name, '@inherits Umbraco.Web.Mvc.UmbracoViewPage<ContentModels.CheckboxList>' +
|
||||
// '\n@using ContentModels = Umbraco.Web.PublishedModels;' +
|
||||
// '\n@{' +
|
||||
// '\n Layout = null;' +
|
||||
// '\n}' +
|
||||
// '\n<p>@Model.UmbracoTest</p>');
|
||||
// });
|
||||
});
|
||||
@@ -0,0 +1,537 @@
|
||||
/// <reference types="Cypress" />
|
||||
import {
|
||||
DocumentTypeBuilder,
|
||||
AliasHelper
|
||||
} from 'umbraco-cypress-testhelpers';
|
||||
|
||||
const tabsDocTypeName = 'Tabs Test Document';
|
||||
const tabsDocTypeAlias = AliasHelper.toAlias(tabsDocTypeName);
|
||||
|
||||
context('Tabs', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
cy.umbracoLogin(Cypress.env('username'), Cypress.env('password'), false);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName)
|
||||
});
|
||||
|
||||
function OpenDocTypeFolder(){
|
||||
cy.umbracoSection('settings');
|
||||
cy.get('li .umb-tree-root:contains("Settings")').should("be.visible");
|
||||
cy.get('.umb-tree-item__inner > .umb-tree-item__arrow').eq(0).click();
|
||||
cy.get('.umb-tree-item__inner > .umb-tree-item__label').contains(tabsDocTypeName).click();
|
||||
}
|
||||
|
||||
function CreateDocWithTabAndNavigate(){
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias("urlPicker")
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
}
|
||||
|
||||
it('Create tab', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
cy.deleteAllContent();
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addGroup()
|
||||
.withName('Tabs1Group')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias('picker')
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
//Create a tab
|
||||
cy.get('.umb-group-builder__tabs__add-tab').click();
|
||||
cy.get('ng-form.ng-invalid > .umb-group-builder__group-title-input').type('Tab 1');
|
||||
//Create a 2nd tab manually
|
||||
cy.get('.umb-group-builder__tabs__add-tab').click();
|
||||
cy.get('ng-form.ng-invalid > .umb-group-builder__group-title-input').type('Tab 2');
|
||||
//Create a textstring property
|
||||
cy.get('[aria-hidden="false"] > .umb-box-content > .umb-group-builder__group-add-property').click();
|
||||
cy.get('.editor-label').type('property name');
|
||||
cy.get('[data-element="editor-add"]').click();
|
||||
|
||||
//Search for textstring
|
||||
cy.get('#datatype-search').type('Textstring');
|
||||
|
||||
// Choose first item
|
||||
cy.get('[title="Textstring"]').closest("li").click();
|
||||
|
||||
// Save property
|
||||
cy.get('.btn-success').last().click();
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
cy.get('[title="tab1"]').should('be.visible');
|
||||
cy.get('[title="tab2"]').should('be.visible');
|
||||
});
|
||||
|
||||
it('Delete tabs', () => {
|
||||
CreateDocWithTabAndNavigate();
|
||||
//Check if tab is there, else if it wasnt created, this test would always pass
|
||||
cy.get('[title="aTab 1"]').should('be.visible');
|
||||
//Delete a tab
|
||||
cy.get('.btn-reset > .icon-trash').click();
|
||||
cy.get('.umb-button > .btn').last().click();
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.get('[title="aTab 1"]').should('not.exist');
|
||||
//Clean
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
});
|
||||
|
||||
it('Delete property in tab', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias("urlPicker")
|
||||
.done()
|
||||
.addContentPickerProperty()
|
||||
.withAlias('picker')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
cy.get('[aria-label="Delete property"]').last().click();
|
||||
cy.umbracoButtonByLabelKey('actions_delete').click();
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click()
|
||||
//Assert
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
cy.get('[title=urlPicker]').should('be.visible');
|
||||
cy.get('[title=picker]').should('not.exist');
|
||||
});
|
||||
|
||||
it('Delete group in tab', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias("urlPicker")
|
||||
.done()
|
||||
.done()
|
||||
.addGroup()
|
||||
.withName('Content Picker Group')
|
||||
.addContentPickerProperty()
|
||||
.withAlias('picker')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
//Delete group
|
||||
cy.get('.umb-group-builder__group-remove > .icon-trash').eq(1).click();
|
||||
cy.umbracoButtonByLabelKey('actions_delete').click();
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click()
|
||||
//Assert
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
cy.get('[title=picker]').should('be.visible');
|
||||
cy.get('[title=urlPicker]').should('not.exist');
|
||||
});
|
||||
|
||||
it('Reorders tab', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group 1')
|
||||
.addUrlPickerProperty()
|
||||
.withLabel('Url picker 1')
|
||||
.withAlias("urlPicker")
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.addTab()
|
||||
.withName('Tab 2')
|
||||
.addGroup()
|
||||
.withName('Tab group 2')
|
||||
.addUrlPickerProperty()
|
||||
.withLabel('Url picker 2')
|
||||
.withAlias("pickerTab 2")
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.addTab()
|
||||
.withName('Tab 3')
|
||||
.addGroup()
|
||||
.withName('Tab group')
|
||||
.addUrlPickerProperty()
|
||||
.withLabel('Url picker 3')
|
||||
.withAlias('pickerTab3')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
//Check if there are any tabs
|
||||
cy.get('ng-form.ng-valid-required > .umb-group-builder__group-title-input').should('be.visible');
|
||||
cy.get('[alias="reorder"]').click();
|
||||
//Type order in
|
||||
cy.get('.umb-group-builder__tab-sort-order > .umb-property-editor-tiny').first().type('3');
|
||||
cy.get('[alias="reorder"]').click();
|
||||
//Assert
|
||||
cy.get('.umb-group-builder__group-title-input').eq(0).invoke('attr', 'title').should('eq', 'aTab 2')
|
||||
cy.get('.umb-group-builder__group-title-input').eq(1).invoke('attr', 'title').should('eq', 'aTab 3')
|
||||
cy.get('.umb-group-builder__group-title-input').eq(2).invoke('attr', 'title').should('eq', 'aTab 1')
|
||||
});
|
||||
|
||||
it('Reorders groups in a tab', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group 1')
|
||||
.addUrlPickerProperty()
|
||||
.withLabel('Url picker 1')
|
||||
.withAlias("urlPicker")
|
||||
.done()
|
||||
.done()
|
||||
.addGroup()
|
||||
.withName('Tab group 2')
|
||||
.addUrlPickerProperty()
|
||||
.withLabel('Url picker 2')
|
||||
.withAlias('urlPickerTwo')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
cy.get('[alias="reorder"]').click();
|
||||
cy.get('.umb-property-editor-tiny').eq(2).type('1');
|
||||
|
||||
cy.get('[alias="reorder"]').click();
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
cy.get('.umb-group-builder__group-title-input').eq(2)
|
||||
.invoke('attr', 'title').should('eq', 'aTab 1/aTab group 2');
|
||||
});
|
||||
|
||||
it('Reorders properties in a tab', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group')
|
||||
.addUrlPickerProperty()
|
||||
.withLabel('PickerOne')
|
||||
.withAlias("urlPicker")
|
||||
.done()
|
||||
.addUrlPickerProperty()
|
||||
.withLabel('PickerTwo')
|
||||
.withAlias('urlPickerTwo')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
//Reorder
|
||||
cy.get('[alias="reorder"]').click();
|
||||
cy.get('.umb-group-builder__group-sort-value').first().type('2');
|
||||
cy.get('[alias="reorder"]').click();
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
cy.get('.umb-locked-field__input').last().invoke('attr', 'title').should('eq', 'urlPicker');
|
||||
});
|
||||
|
||||
it('Tab name cannot be empty', () => {
|
||||
CreateDocWithTabAndNavigate();
|
||||
cy.get('.umb-group-builder__group-title-input').first().clear();
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoErrorNotification().should('be.visible');
|
||||
});
|
||||
|
||||
it('Two tabs cannot have the same name', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias("urlPicker")
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
//Create a 2nd tab manually
|
||||
cy.get('.umb-group-builder__tabs__add-tab').click();
|
||||
cy.get('ng-form.ng-invalid > .umb-group-builder__group-title-input').type('Tab 1');
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoErrorNotification().should('be.visible');
|
||||
});
|
||||
|
||||
it('Group name cannot be empty', () => {
|
||||
CreateDocWithTabAndNavigate();
|
||||
cy.get('.clearfix > .-placeholder').click();
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoErrorNotification().should('be.visible');
|
||||
});
|
||||
|
||||
it('Group name cannot have the same name', () => {
|
||||
CreateDocWithTabAndNavigate();
|
||||
cy.get('.clearfix > .-placeholder').click();
|
||||
cy.get('.umb-group-builder__group-title-input').last().type('Tab group');
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoErrorNotification().should('be.visible');
|
||||
});
|
||||
|
||||
it('Drag a group into another tab', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias("urlPicker")
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.addTab()
|
||||
.withName('Tab 2')
|
||||
.addGroup()
|
||||
.withName('Tab group tab 2')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias('urlPickerTabTwo')
|
||||
.done()
|
||||
.done()
|
||||
.addGroup()
|
||||
.withName('Tab group 2')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias('urlPickerTwo')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
cy.get('[alias="reorder"]').click();
|
||||
cy.get('.umb-group-builder__tabs-overflow--right > .caret').click().click();
|
||||
cy.get('.umb-group-builder__tab').last().click();
|
||||
cy.get('.umb-group-builder__group-title-icon').last().trigger('mousedown', { which: 1 })
|
||||
cy.get('.umb-group-builder__tab').eq(1).trigger('mousemove', {which: 1, force: true});
|
||||
cy.get('.umb-group-builder__tab').eq(1).should('have.class', 'is-active').trigger('mouseup', {force:true});
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
cy.get('[title="aTab 1/aTab group 2"]').should('be.visible');
|
||||
});
|
||||
|
||||
it('Drag and drop reorders a tab', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias("urlPicker")
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.addTab()
|
||||
.withName('Tab 2')
|
||||
.addGroup()
|
||||
.withName('Tab group tab 2')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias('urlPickerTabTwo')
|
||||
.done()
|
||||
.done()
|
||||
.addGroup()
|
||||
.withName('Tab group 2')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias('urlPickerTwo')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
cy.get('[alias="reorder"]').click();
|
||||
//Scroll right so we can see tab 2
|
||||
cy.get('.umb-group-builder__tabs-overflow--right > .caret').click().click();
|
||||
cy.get('.umb-group-builder__tab-title-icon').eq(1).trigger('mousedown', { which: 1 })
|
||||
cy.get('.umb-group-builder__tab').eq(1).trigger('mousemove', {which: 1, force: true});
|
||||
cy.get('.umb-group-builder__tab').eq(1).should('have.class', 'is-active').trigger('mouseup', {force:true});
|
||||
cy.get('[alias="reorder"]').click();
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
cy.get('[title="aTab 2"]').should('be.visible');
|
||||
});
|
||||
|
||||
it('Drags and drops a property in a tab', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias("urlPicker")
|
||||
.withLabel('UrlPickerOne')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.addTab()
|
||||
.withName('Tab 2')
|
||||
.addGroup()
|
||||
.withName('Tab group tab 2')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias('urlPickerTabTwo')
|
||||
.withLabel('UrlPickerTabTwo')
|
||||
.done()
|
||||
.addUrlPickerProperty()
|
||||
.withAlias('urlPickerTwo')
|
||||
.withLabel('UrlPickerTwo')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
cy.get('[alias="reorder"]').click();
|
||||
//Scroll so we are sure we see tab 2
|
||||
cy.get('.umb-group-builder__tabs-overflow--right > .caret').click().click();
|
||||
//Navigate to tab 2
|
||||
cy.get('.umb-group-builder__tab').last().click();
|
||||
cy.get('.umb-group-builder__property-meta > .flex > .icon').eq(1).trigger('mousedown', {which: 1})
|
||||
cy.get('.umb-group-builder__tab').eq(1).trigger('mousemove', {which: 1, force: true});
|
||||
cy.get('.umb-group-builder__tab').eq(1).should('have.class', 'is-active');
|
||||
cy.get('.umb-group-builder__property')
|
||||
.first().trigger('mousemove', {which: 1, force: true}).trigger('mouseup', {which: 1, force:true});
|
||||
cy.get('[alias="reorder"]').click();
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
cy.get('[title="urlPickerTabTwo"]').should('be.visible');
|
||||
});
|
||||
|
||||
it('Drags and drops a group and converts to tab', () => {
|
||||
cy.umbracoEnsureDocumentTypeNameNotExists(tabsDocTypeName);
|
||||
const tabsDocType = new DocumentTypeBuilder()
|
||||
.withName(tabsDocTypeName)
|
||||
.withAlias(tabsDocTypeAlias)
|
||||
.withAllowAsRoot(true)
|
||||
.withDefaultTemplate(tabsDocTypeAlias)
|
||||
.addTab()
|
||||
.withName('Tab 1')
|
||||
.addGroup()
|
||||
.withName('Tab group')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias("urlPicker")
|
||||
.withLabel('UrlPickerOne')
|
||||
.done()
|
||||
.done()
|
||||
.addGroup()
|
||||
.withName('Tab group 2')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias('urlPickerTwo')
|
||||
.withLabel('UrlPickerTwo')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.addTab()
|
||||
.withName('Tab 2')
|
||||
.addGroup()
|
||||
.withName('Tab group tab 2')
|
||||
.addUrlPickerProperty()
|
||||
.withAlias('urlPickerTabTwo')
|
||||
.withLabel('UrlPickerTabTwo')
|
||||
.done()
|
||||
.done()
|
||||
.done()
|
||||
.build();
|
||||
cy.saveDocumentType(tabsDocType);
|
||||
OpenDocTypeFolder();
|
||||
cy.get('[alias="reorder"]').click();
|
||||
cy.get('.umb-group-builder__group-title-icon').eq(1).trigger('mousedown', {which: 1})
|
||||
cy.get('.umb-group-builder__convert-dropzone').trigger('mousemove', {which: 1, force: true});
|
||||
cy.get('.umb-group-builder__convert-dropzone').trigger('mouseup', {which: 1, force:true});
|
||||
cy.umbracoButtonByLabelKey('buttons_save').click();
|
||||
//Assert
|
||||
cy.umbracoSuccessNotification().should('be.visible');
|
||||
cy.get('[title="tabGroup"]').should('be.visible');
|
||||
});
|
||||
});
|
||||
@@ -10,7 +10,7 @@
|
||||
"cypress": "^6.8.0",
|
||||
"ncp": "^2.0.0",
|
||||
"prompt": "^1.0.0",
|
||||
"umbraco-cypress-testhelpers": "^1.0.0-beta-53"
|
||||
"umbraco-cypress-testhelpers": "^1.0.0-beta-57"
|
||||
},
|
||||
"dependencies": {
|
||||
"typescript": "^3.9.2"
|
||||
|
||||
Reference in New Issue
Block a user