skyline-console/test/e2e/support/table-commands.js
Jingwei.Zhang 0295af7bbf test: Add swift e2e
Add swift e2e:
1. create/delete container, update access
2. upload/edit/rename/delete/copy/paste/cut file
3. create/delete folder

Change-Id: Iced51cc04d672a85f6180dac7c96296bb9af316d
2021-12-06 14:27:08 +08:00

462 lines
12 KiB
JavaScript

// Copyright 2021 99cloud
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import getTitle from './common';
Cypress.Commands.add('waitTableLoading', () => {
cy.get('.ant-spin-dot-spin', { timeout: 120000 }).should('not.exist');
});
Cypress.Commands.add('clickHeaderButton', (buttonIndex, waitTime = 2000) => {
cy.get('.table-header-btns')
.find('button')
.eq(buttonIndex)
.click({ force: true });
cy.wait(waitTime);
});
Cypress.Commands.add('clickHeaderButtonByTitle', (title, waitTime = 2000) => {
const realTitle = getTitle(title);
cy.get('.table-header-btns')
.find('button')
.contains(realTitle)
.click({ force: true });
cy.wait(waitTime);
});
Cypress.Commands.add(
'clickHeaderConfirmButtonByTitle',
(title, waitTime = 2000) => {
const realTitle = getTitle(title);
cy.get('.table-header-btns')
.find('button')
.contains(realTitle)
.click({ force: true });
cy.wait(waitTime);
cy.clickConfirmActionSubmitButton(waitTime);
}
);
Cypress.Commands.add(
'clickHeaderButtonInMoreByTitle',
(title, waitTime = 2000) => {
const realTitle = getTitle(title);
const moreTitle = getTitle('More Actions');
cy.get('.table-header-btns')
.find('.ant-dropdown-trigger')
.contains(moreTitle)
.trigger('mouseover');
cy.get('ul.ant-dropdown-menu-light')
.last()
.find('button')
.contains(realTitle)
.click({ force: true });
cy.wait(waitTime);
}
);
Cypress.Commands.add('checkTableFirstRow', (name) => {
cy.get('.sl-table')
.find('.ant-table-row')
.first()
.contains(name)
.should('exist');
});
Cypress.Commands.add('clickFirstActionButton', () => {
cy.get('.ant-table-row')
.first()
.find('button')
.first()
.click({ force: true });
});
Cypress.Commands.add('clickActionButtonByTitle', (title) => {
const realTitle = getTitle(title);
cy.get('.ant-table-row')
.first()
.find('.ant-btn')
.contains(realTitle)
.click({ force: true });
});
Cypress.Commands.add('clickMoreActionButton', (buttonIndex) => {
cy.get('.ant-table-row')
.first()
.find('.ant-dropdown-trigger')
.trigger('mouseover');
cy.get('ul.ant-dropdown-menu-light')
.find('li')
.eq(buttonIndex)
.click({ force: true });
});
Cypress.Commands.add('clickActionInMore', (title, waitTime = 2000) => {
cy.get('.ant-table-row')
.first()
.find('.ant-dropdown-trigger')
.trigger('mouseover');
const realTitle = getTitle(title);
cy.get('ul.ant-dropdown-menu-light')
.contains(realTitle)
.click({ force: true })
.wait(waitTime);
});
Cypress.Commands.add('clickActionInMoreSub', (title, subMenu) => {
cy.get('.ant-table-row')
.first()
.find('.ant-dropdown-trigger')
.trigger('mouseover');
const realTitle = getTitle(title);
const realMenu = getTitle(subMenu);
cy.get('.ant-dropdown-menu-submenu-title')
.contains(realMenu)
.trigger('mouseover');
cy.get('.ant-dropdown-menu-submenu-popup')
.last()
.find('button')
.contains(realTitle)
.click({ force: true });
});
Cypress.Commands.add('tableSearchText', (str) => {
cy.get('.magic-input-wrapper')
.find('input')
.type(`${str}{enter}`, { force: true });
cy.waitTableLoading();
});
Cypress.Commands.add('tableSimpleSearchText', (str) => {
cy.get('input').first().type(`${str}{enter}`, { force: true });
cy.waitTableLoading();
});
Cypress.Commands.add('tableSearchSelect', (name, value) => {
cy.get('.magic-input-wrapper').find('input').click({ force: true });
const realName = getTitle(name);
const realValue = getTitle(value);
cy.get('.magic-input-wrapper')
.find('.ant-menu-item')
.contains(realName)
.click({ force: true });
cy.get('.magic-input-wrapper')
.find('.ant-menu-item')
.contains(realValue)
.click({ force: true });
// if (!onlyOneFilter) {
// cy.get('.magic-input-wrapper').find('ul > button').click({ force: true });
// }
cy.waitTableLoading();
});
Cypress.Commands.add('tableSearchSelectText', (name, str) => {
cy.get('.magic-input-wrapper').find('input').click({ force: true });
const realName = getTitle(name);
cy.get('.magic-input-wrapper')
.find('.ant-menu-item')
.contains(realName)
.click({ force: true });
cy.get('.magic-input-wrapper')
.find('input')
.type(`${str}{enter}`, { force: true });
cy.waitTableLoading();
});
Cypress.Commands.add('clearTableSearch', () => {
cy.get('.magic-input-wrapper').find('button').last().click({ force: true });
cy.wait(2000);
});
Cypress.Commands.add('checkEmptyTable', () => {
cy.get('.ant-empty-normal').should('have.length', 1);
cy.wait(2000);
});
Cypress.Commands.add('checkActionDisabled', (title) => {
const realTitle = getTitle(title);
cy.get('.ant-table-row').first().contains(realTitle).should('not.exist');
cy.get('.ant-table-row')
.first()
.find('.ant-dropdown-trigger')
.trigger('mouseover');
cy.get('ul.ant-dropdown-menu-light').contains(realTitle).should('not.exist');
});
Cypress.Commands.add('checkActionDisabledInFirstRow', (title, name) => {
const realTitle = getTitle(title);
cy.tableSearchText(name)
.get('.ant-table-row')
.first()
.contains(realTitle)
.should('not.exist')
.get('.ant-table-row')
.first()
.find('.ant-dropdown-trigger')
.trigger('mouseover')
.get('ul.ant-dropdown-menu-light')
.contains(realTitle)
.should('not.exist');
});
Cypress.Commands.add('clickFirstActionDisabled', () => {
cy.get('.ant-table-row').first().find('button').first().should('be.disabled');
});
Cypress.Commands.add('clickConfirmActionInFirst', (waitTime) => {
cy.get('.ant-table-row')
.first()
.find('button')
.first()
.click({ force: true })
.wait(2000)
.clickConfirmActionSubmitButton(waitTime);
});
Cypress.Commands.add('clickConfirmActionInMore', (title, waitTime) => {
cy.get('.ant-table-row')
.first()
.find('.ant-dropdown-trigger')
.trigger('mouseover');
const realTitle = getTitle(title);
cy.get('ul.ant-dropdown-menu-light')
.contains(realTitle)
.click({ force: true })
.wait(1000)
.clickConfirmActionSubmitButton(waitTime);
});
Cypress.Commands.add('clickConfirmActionButton', (title, waitTime) => {
const realTitle = getTitle(title);
cy.get('.ant-table-row')
.first()
.find('.ant-btn')
.contains(realTitle)
.click({ force: true })
.wait(1000)
.clickConfirmActionSubmitButton(waitTime);
});
Cypress.Commands.add(
'clickConfirmActionInMoreSub',
(title, subMenu, waitTime) => {
cy.get('.ant-table-row')
.first()
.find('.ant-dropdown-trigger')
.trigger('mouseover');
const realTitle = getTitle(title);
const realMenu = getTitle(subMenu);
cy.get('.ant-dropdown-menu-submenu-title')
.contains(realMenu)
.trigger('mouseover');
cy.get('.ant-dropdown-menu-submenu-popup')
.last()
.find('button')
.contains(realTitle)
.click()
.wait(1000)
.clickConfirmActionSubmitButton(waitTime);
}
);
Cypress.Commands.add('clickLinkInColumn', (columnIndex, waitTime = 5000) => {
cy.get('.ant-table-row')
.first()
.find('td')
.eq(columnIndex)
.find('a')
.click(waitTime);
});
Cypress.Commands.add('goToDetail', (index = 1, waitTime) => {
cy.clickLinkInColumn(index, 2000);
cy.get('.ant-skeleton-content', { timeout: 120000 }).should('not.exist');
if (waitTime) {
cy.wait(waitTime);
}
});
Cypress.Commands.add('checkColumnValue', (columnIndex, value) => {
cy.get('.ant-table-row')
.first()
.find('td')
.eq(columnIndex)
.contains(value)
.should('exist');
});
Cypress.Commands.add(
'getStatusValueLength',
(value, hasLengthCallback, noLengthCallback) => {
const eles = Cypress.$('.ant-badge-status-text').filter(
`:contains(${value})`
);
if (eles.length > 0) {
hasLengthCallback();
} else {
noLengthCallback();
cy.getStatusValueLength(value, hasLengthCallback, noLengthCallback);
}
}
);
Cypress.Commands.add('waitStatusTextByFresh', (text) => {
let index = 0;
const hasLengthCallback = () => {
// eslint-disable-next-line no-console
console.log('contain', index);
};
const noLengthCallback = () => {
// eslint-disable-next-line no-console
console.log('not contain', index);
cy.freshTable();
index += 1;
cy.wait(5000);
};
cy.getStatusValueLength(text, hasLengthCallback, noLengthCallback);
});
Cypress.Commands.add('selectFirst', () => {
cy.get('.ant-table-row')
.first()
.find('.ant-checkbox-input')
.click({ force: true })
.wait(2000);
});
Cypress.Commands.add('selectAll', () => {
cy.get('.ant-table-thead')
.find('.ant-checkbox-input')
.click({ force: true })
.wait(2000);
});
Cypress.Commands.add(
'getStatusLength',
(hasLengthCallback, noLengthCallback) => {
if (
Cypress.$('.ant-badge-status-success').length > 0 ||
Cypress.$('.ant-badge-status-error').length > 0
) {
hasLengthCallback();
} else {
noLengthCallback();
cy.getStatusLength(hasLengthCallback, noLengthCallback);
}
}
);
Cypress.Commands.add('waitStatusActiveByRefresh', () => {
let index = 0;
const hasLengthCallback = () => {
// eslint-disable-next-line no-console
console.log('active', index);
};
const noLengthCallback = () => {
// eslint-disable-next-line no-console
console.log('not active', index);
cy.freshTable();
index += 1;
cy.wait(5000);
};
cy.getStatusLength(hasLengthCallback, noLengthCallback);
});
Cypress.Commands.add('waitStatusActive', (index) => {
if (!index) {
cy.get('.ant-table-row')
.first()
.find('.ant-badge-status-success', { timeout: 100000000 })
.should('exist');
} else {
cy.get('.ant-table-row')
.first()
.find('.ant-table-cell')
.eq(index)
.find('.ant-badge-status-success', { timeout: 100000000 })
.should('exist');
}
});
Cypress.Commands.add('waitStatusGreen', (index) => {
if (!index) {
cy.get('.ant-table-row')
.first()
.find('.ant-badge-status-green', { timeout: 100000000 })
.should('exist');
} else {
cy.get('.ant-table-row')
.first()
.find('.ant-table-cell')
.eq(index)
.find('.ant-badge-status-green', { timeout: 100000000 })
.should('exist');
}
});
Cypress.Commands.add('freshTable', () => {
// eslint-disable-next-line no-console
console.log('fresh table');
cy.clickHeaderButton(0).waitTableLoading();
});
Cypress.Commands.add('collapseItemClick', (name) => {
// eslint-disable-next-line no-console
if (name) {
cy.get('.ant-collapse-item').contains(name).first().click({ force: true });
} else {
cy.get('.ant-collapse-item').first().click({ force: true });
}
});
Cypress.Commands.add('collapseItemClickButton', (actionTitle) => {
// eslint-disable-next-line no-console
const realTitle = getTitle(actionTitle);
cy.get('.ant-collapse-item')
.first()
.find('.ant-btn')
.contains(realTitle)
.click({ force: true });
});
Cypress.Commands.add('clickTimeFilter', (index) => {
cy.get('.ant-radio-group')
.find('.ant-radio-button-wrapper')
.eq(index)
.click({ force: true })
.waitTableLoading();
});
Cypress.Commands.add('tableSearchQuick', () => {
cy.get('.magic-input-checks')
.find('.ant-checkbox-input')
.first()
.click({ force: true })
.waitTableLoading();
});
Cypress.Commands.add('clickButtonInColumn', (index) => {
cy.get('.ant-table-row')
.first()
.find('.ant-table-cell')
.eq(index)
.find('button')
.click({ force: true });
});
Cypress.Commands.add('goToContainerDetail', () => {
cy.clickLinkInColumn(1, 2000);
cy.waitTableLoading();
});