В отличие от @Maccurt, я будет фактически делать это так, как вы предлагаете (изменять базу данных), так что вы можете правильно протестировать поток e2e.
И вместо настройки тестовых маршрутов, которыенаписал бы в БД, вы можете использовать cy.task
, чтобы поговорить с процессом узла Cypress Runner, который может записывать в БД напрямую.Это выглядело бы так:
Использование postgres ( node-postgres ) в этом примере.
your-test.spec.js
describe("test", () => {
it("test", () => {
cy.task("query", {
sql: `
UPDATE product
SET status = $1
WHERE id = $2
`,
values: [ "InStock", 40 ]
});
// your cy assertions here
});
});
cypress/plugins/index.js
const pg = require("pg");
const pool = /* initialize your database connection */;
module.exports = ( on ) => {
on( "task", {
query ({ sql, values }) {
return pool.query( sql, values );
}
});
});