В своих тестах я выполняю запросы graphql через ApolloClient и мутации для настройки моих данных.Используя Cypress, как мне настроить это так, чтобы я мог дождаться выполнения этих шагов, прежде чем продолжить:
сейчас я взломал это так ...
cy.wrap(null)
.then(() => register({ email, template: 'basic' }))
.then(() => {
login(email);
})
.then(resp => console.log('Logged IN: ', resp));
console.log('Hello [This logs out BEFORE the logged in -- i want to wait]')
cy.wait(1000);
cy.visit('/');
но я хотел быждать всего блока cy.wrap.
У кого-нибудь есть хорошее рабочее решение.
Спасибо!
, если это полезно, два упомянутых методавыглядеть следующим образом.TestClient является экземпляром ApolloClient
export function login(email: string) {
const client = new TestClient();
return client
.mutate<LoginMutation, LoginMutationVariables>({
mutation: loginMutation,
variables: { email }
})
.then(resp => {
cy.setCookie('token', resp!.data!.login!.token!);
return resp;
});
}
и
export function register(input: IRegisterInput) {
const { email } = input;
const name = input.name || faker.name.findName();
return createInvitation(email, name).then(invitaitonResponse => {
const inviteCode = invitaitonResponse.data!.createInvitation!.invitation!.inviteCode!;
let variables: RegisterMutationVariables = { email, inviteCode };
if (input.template) {
variables.template = input.template;
}
const client = new TestClient();
return client.mutate<RegisterMutation, RegisterMutationVariables>({
mutation: registerMutation,
variables: { email, inviteCode }
});
});
}