export const before = (taskResult, options, backend) => { Cypress.config('taskTimeout', 7 * 60 * 1000); cy.task('setupBackend', { backend, options }).then(data => { taskResult.data = data; Cypress.config('defaultCommandTimeout', data.mockResponses ? 5 * 1000 : 1 * 60 * 1000); }); }; export const after = (taskResult, backend) => { cy.task('teardownBackend', { backend, ...taskResult.data, }); }; export const beforeEach = (taskResult, backend) => { const spec = Cypress.mocha.getRunner().suite.ctx.currentTest.parent.title; const testName = Cypress.mocha.getRunner().suite.ctx.currentTest.title; cy.task('setupBackendTest', { backend, ...taskResult.data, spec, testName, }); if (taskResult.data.mockResponses) { const fixture = `${spec}__${testName}.json`; console.log('loading fixture:', fixture); cy.stubFetch({ fixture }); } return cy.clock(0, ['Date']); }; export const afterEach = (taskResult, backend) => { const spec = Cypress.mocha.getRunner().suite.ctx.currentTest.parent.title; const testName = Cypress.mocha.getRunner().suite.ctx.currentTest.title; cy.task('teardownBackendTest', { backend, ...taskResult.data, spec, testName, }); if ( !process.env.RECORD_FIXTURES && Cypress.mocha.getRunner().suite.ctx.currentTest.state === 'failed' ) { Cypress.runner.stop(); } }; export const seedRepo = (taskResult, backend) => { cy.task('seedRepo', { backend, ...taskResult.data, }); };