sou novo no cypress e gostaria de saber como posso fazer as seguintes verificações: Tenho caso: tenho um produto no banco de dados, que pode ter os status: InStock e OutOfStock e Descontinuado. Se o produto estiver com o status 'InStock', devo ser capaz de despachá-lo para um cliente, se em 'OutOfStock' / 'Descontinuado' eu não devo ser capaz de enviar para um cliente. Com uma chamada da API, posso enviar o produto a um cliente. Se o produto está no status 'InStock', a resposta da API é 200, se não a resposta é com statusCode 400. Minha pergunta é: Como posso alterar o status do produto no banco de dados para cada teste, para que eu possa verificar cada dos 3 status (se a API retornar a resposta adequada)? Eu sei como verificar a resposta da API em si, mas não está claro para mim como alterar o status do produto no banco de dados, antes de cada teste.
Ao contrário do @Maccurt, eu faria da maneira que você propõe (altere o banco de dados), para que você possa testar o fluxo do e2e corretamente.
E em vez de configurar rotas de teste que gravariam no banco de dados, você pode usar cy.task
para falar com o processo de nó do Cypress Runner, que pode gravar no banco de dados diretamente. Seria assim:
Usando postgres ( node-postgres ) neste exemplo.
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 );
}
});
});
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras