99 lines
2.7 KiB
JavaScript

let jwt;
const animDelay = Cypress.config('animDelay');
const backendUrl = Cypress.config('backendUrl');
const frontLoadingDelay = Cypress.config('frontLoadingDelay');
const links = {
Category: '/admin/plugins/content-manager/category?source=content-manager',
Product: '/admin/plugins/content-manager/product?source=content-manager',
settings: '/admin/plugins/content-manager/ctm-configurations',
Tag: '/admin/plugins/content-manager/tag?source=content-manager',
User: '/admin/plugins/content-manager/user?source=users-permissions',
};
describe('Testing build and schema core_store', () => {
before(() => {
cy.login()
.then(data => {
jwt = data.jwt;
return cy.createCTMApis(data.jwt);
})
.wait(1000);
});
after(() => {
cy.deleteApi('tag', jwt)
.deleteApi('category', jwt)
.deleteApi('product', jwt);
});
context('Testing views', () => {
beforeEach(() => {
cy.login()
.then(data => {
jwt = data.jwt;
})
.visit('/admin')
.wait(frontLoadingDelay);
});
it('Should visit all list pages without any errors', () => {
cy.server();
cy.route(`${backendUrl}/content-manager/models`).as('initCTM');
cy.get(`a[href="${links.settings}"]`)
.click()
.wait('@initCTM');
// Check all list views are rendered without any error
for (let i = 0; i < 4; i++) {
Object.keys(links).forEach(link => {
const name = link === 'settings' ? 'Content Manager' : link;
cy.get(`a[href="${links[link]}"]`)
.click()
.get('h1')
.should('have', name);
});
}
});
it('Should visit all views once without any errors', () => {
cy.server();
cy.route(`${backendUrl}/content-manager/models`).as('initCTM');
cy.get(`a[href="${links.settings}"]`)
.click()
.wait('@initCTM');
// Testing errors related to reactstrap
cy.get('#cancelChanges')
.click()
.wait(animDelay)
.checkModalOpening()
.should('be.visible')
.type('{esc}');
// Test setting view
Object.keys(links).forEach(link => {
if (link !== 'settings') {
cy.get(`#${link.toLowerCase()}`)
.click()
.get('h1')
.should('have', `Content Manager - ${link}`)
.get(`a[href="${links.settings}"]`)
.click();
}
});
Object.keys(links).forEach(link => {
if (link !== 'settings') {
cy.get(`a[href="${links[link]}"]`)
.click()
.get('button#addEntry')
.click()
.get('h1')
.should('have', 'New Entry');
}
});
});
});
});