mirror of
https://github.com/strapi/strapi.git
synced 2025-07-23 00:51:17 +00:00
175 lines
5.4 KiB
JavaScript
175 lines
5.4 KiB
JavaScript
![]() |
let jwt;
|
||
|
let userId;
|
||
|
const animDelay = Cypress.config('animDelay');
|
||
|
const frontEndUrl = Cypress.config('baseUrl');
|
||
|
const frontLoadingDelay = Cypress.config('frontLoadingDelay');
|
||
|
const backendUrl = Cypress.config('backendUrl');
|
||
|
const pluginUrl = `${frontEndUrl}/admin/plugins/content-manager`;
|
||
|
|
||
|
describe('Testing Content Manager ListPages', function() {
|
||
|
before(() => {
|
||
|
cy.login()
|
||
|
.then(data => {
|
||
|
jwt = data.jwt;
|
||
|
|
||
|
return cy
|
||
|
.createCTMApis(data.jwt)
|
||
|
.then(() => jwt);
|
||
|
})
|
||
|
.then(jwt => {
|
||
|
cy.seedData('product', jwt);
|
||
|
})
|
||
|
.wait(1000);
|
||
|
});
|
||
|
|
||
|
after(() => {
|
||
|
cy.deleteAllModelData('product', jwt);
|
||
|
cy.deleteApi('tag', jwt)
|
||
|
.deleteApi('category', jwt)
|
||
|
.deleteApi('product', jwt);
|
||
|
});
|
||
|
|
||
|
context('Testing sorting options', () => {
|
||
|
beforeEach(() => {
|
||
|
cy.login()
|
||
|
.then(data => {
|
||
|
jwt = data.jwt;
|
||
|
userId = data.user._id || data.user.id;
|
||
|
})
|
||
|
.visit('/admin')
|
||
|
.wait(frontLoadingDelay);
|
||
|
});
|
||
|
|
||
|
it('Should have the Id default sort', () => {
|
||
|
cy.get(`a[href="/admin/plugins/content-manager/product?source=content-manager"]`)
|
||
|
.click()
|
||
|
.wait(frontLoadingDelay);
|
||
|
|
||
|
cy.get('tr > th:nth-child(2) > span')
|
||
|
.children('i')
|
||
|
.should('be.visible')
|
||
|
.invoke('attr', 'class')
|
||
|
.should('includes', 'fa-sort-asc');
|
||
|
});
|
||
|
|
||
|
it('Should change the default sort of product to name ASC then name DESC', () => {
|
||
|
cy.server();
|
||
|
cy.route(`${backendUrl}/content-manager/explorer/product?_limit=10&_start=0&_sort=_id:ASC&source=content-manager`).as('getProduct');
|
||
|
cy.route(`${backendUrl}/content-manager/explorer/product?_limit=10&_start=0&_sort=name:ASC&source=content-manager`).as('getSortByNameASC');
|
||
|
cy.route(`${backendUrl}/content-manager/explorer/product?_limit=10&_start=0&_sort=name:DESC&source=content-manager`).as('getSortByNameDESC');
|
||
|
|
||
|
cy.get('a[href="/admin/plugins/content-manager/product?source=content-manager"]')
|
||
|
.click()
|
||
|
.wait('@getProduct')
|
||
|
.get('tr > th:nth-child(3) > span').as('getName')
|
||
|
.click();
|
||
|
|
||
|
cy.wait('@getSortByNameASC')
|
||
|
.get('@getName')
|
||
|
.children('i')
|
||
|
.should('be.visible')
|
||
|
.invoke('attr', 'class')
|
||
|
.should('includes', 'iconAsc')
|
||
|
.get('tbody > tr:nth-child(1) > td:nth-child(3)').as('firstResult')
|
||
|
.should('have.text', 'name');
|
||
|
|
||
|
|
||
|
cy.get('@getName')
|
||
|
.click()
|
||
|
.wait('@getSortByNameDESC')
|
||
|
.get('@getName')
|
||
|
.children('i')
|
||
|
.should('be.visible')
|
||
|
.invoke('attr', 'class')
|
||
|
.should('includes', 'iconDesc')
|
||
|
.get('@firstResult')
|
||
|
.should('have.text', 'name1');
|
||
|
});
|
||
|
|
||
|
it('Should set the product default sort to name', () => {
|
||
|
cy.get('a[href="/admin/plugins/content-manager/ctm-configurations"]')
|
||
|
.click()
|
||
|
.get('#product')
|
||
|
.click()
|
||
|
.get('select[name="product\.defaultSort"]').as('defaultSort')
|
||
|
.select('name')
|
||
|
.should('have.value', 'name')
|
||
|
.get('select[name="product\.sort"]').as('sortOption')
|
||
|
.select('DESC')
|
||
|
.should('have.value', 'DESC')
|
||
|
.submitForm()
|
||
|
.get('#ctaConfirm')
|
||
|
.click()
|
||
|
.wait(frontLoadingDelay)
|
||
|
.get('a[href="/admin/plugins/content-manager/product?source=content-manager"]')
|
||
|
.click()
|
||
|
.wait(frontLoadingDelay)
|
||
|
.get('tr > th:nth-child(3) > span').as('getName')
|
||
|
.children('i')
|
||
|
.invoke('attr', 'class')
|
||
|
.should('includes', 'iconDesc')
|
||
|
.get('tbody > tr:nth-child(1) > td:nth-child(3)')
|
||
|
.should('have.text', 'name1');
|
||
|
|
||
|
// Set it back to normal
|
||
|
cy.get('a[href="/admin/plugins/content-manager/ctm-configurations"]')
|
||
|
.click()
|
||
|
.get('#product')
|
||
|
.click()
|
||
|
.get('@defaultSort')
|
||
|
.select('_id')
|
||
|
.should('have.value', '_id')
|
||
|
.get('@sortOption')
|
||
|
.select('ASC')
|
||
|
.should('have.value', 'ASC')
|
||
|
.submitForm()
|
||
|
.get('#ctaConfirm')
|
||
|
.click()
|
||
|
.wait(frontLoadingDelay)
|
||
|
.get('a[href="/admin/plugins/content-manager/product?source=content-manager"]')
|
||
|
.click()
|
||
|
.wait(frontLoadingDelay)
|
||
|
.get('tr > th:nth-child(2) > span')
|
||
|
.children('i')
|
||
|
.invoke('attr', 'class')
|
||
|
.should('includes', 'iconAsc');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
context('Testing filters', () => {
|
||
|
beforeEach(() => {
|
||
|
cy.login()
|
||
|
.then(data => {
|
||
|
jwt = data.jwt;
|
||
|
userId = data.user._id || data.user.id;
|
||
|
})
|
||
|
.visit('/admin')
|
||
|
.wait(frontLoadingDelay);
|
||
|
});
|
||
|
|
||
|
it('Should apply filters for product data', () => {
|
||
|
cy.get(`a[href="/admin/plugins/content-manager/product?source=content-manager"]`)
|
||
|
.click()
|
||
|
.wait(frontLoadingDelay);
|
||
|
cy.get('button#addFilterCTA').as('toggleFilter')
|
||
|
.click()
|
||
|
.wait(animDelay)
|
||
|
.get('div#filterPickWrapper').as('filterWrapper')
|
||
|
.children('div')
|
||
|
.should('have.length', 1);
|
||
|
|
||
|
cy.get('input[name="0\.value"]')
|
||
|
.type('name')
|
||
|
.get('button#newFilter')
|
||
|
.click()
|
||
|
.get('select[name="1\.attr"]')
|
||
|
.select('bool')
|
||
|
.get('button[label="content-manager.components.FiltersPickWrapper.PluginHeader.actions.apply"]')
|
||
|
.click()
|
||
|
.wait(animDelay)
|
||
|
.get('tbody > tr')
|
||
|
.should('have.length', 1);
|
||
|
});
|
||
|
});
|
||
|
});
|