Refactor: Don't use async/await in cypress

This commit is contained in:
roschaefer 2020-02-17 20:15:51 +01:00
parent 0fa96fb537
commit 2ca4939ef0
4 changed files with 55 additions and 39 deletions

View File

@ -42,10 +42,12 @@ Given('I am logged in with a {string} role', role => {
.first("User", {
name: `${role} is my name`,
})
.then(async user => {
const userJson = await user.toJson()
cy.login(userJson)
.then(user => {
return new Cypress.Promise((resolve, reject) => {
return user.toJson().then((user) => resolve(user))
})
})
.then(user => cy.login(user))
})
When('I click on "Report Post" from the content menu of the post', () => {

View File

@ -39,10 +39,12 @@ Given("I am logged in", () => {
.first("User", {
name: narratorParams.name
})
.then(async user => {
const userJson = await user.toJson()
cy.login(userJson)
.then(user => {
return new Cypress.Promise((resolve, reject) => {
return user.toJson().then((user) => resolve(user))
})
})
.then(user => cy.login(user))
});
Given("I log in as {string}", name => {
@ -50,10 +52,12 @@ Given("I log in as {string}", name => {
.first("User", {
name
})
.then(async user => {
const userJson = await user.toJson()
cy.login(userJson)
.then(user => {
return new Cypress.Promise((resolve, reject) => {
return user.toJson().then((user) => resolve(user))
})
})
.then(user => cy.login(user))
})
Given("the {string} user searches for {string}", (_, postTitle) => {
@ -62,10 +66,12 @@ Given("the {string} user searches for {string}", (_, postTitle) => {
.first("User", {
id: "annoying-user"
})
.then(async user => {
const userJson = await user.toJson()
cy.login(userJson)
.then(user => {
return new Cypress.Promise((resolve, reject) => {
return user.toJson().then((user) => resolve(user))
})
})
.then(user => cy.login(user))
cy.get(".searchable-input .ds-select-search")
.focus()
.type(postTitle);
@ -142,10 +148,12 @@ When("a blocked user visits the post page of one of my authored posts", () => {
.first("User", {
name: 'Harassing User'
})
.then(async user => {
const userJson = await user.toJson()
cy.login(userJson)
.then(user => {
return new Cypress.Promise((resolve, reject) => {
return user.toJson().then((user) => resolve(user))
})
})
.then(user => cy.login(user))
cy.openPage('post/previously-created-post')
})
@ -349,10 +357,12 @@ Given("I am logged in with these credentials:", table => {
.first("User", {
name: loginCredentials.email,
})
.then(async user => {
const userJson = await user.toJson()
cy.login(userJson)
.then(user => {
return new Cypress.Promise((resolve, reject) => {
return user.toJson().then((user) => resolve(user))
})
})
.then(user => cy.login(user))
});
When("I fill the password form with:", table => {

View File

@ -25,14 +25,17 @@ const switchLang = name => {
cy.contains(".locale-menu-popover a", name).click();
};
const authenticatedHeaders = async (variables) => {
const authenticatedHeaders = (variables) => {
const mutation = gql`
mutation($email: String!, $password: String!) {
login(email: $email, password: $password)
}
`
const response = await request(config.GRAPHQL_URI, mutation, variables)
return { authorization: `Bearer ${response.login}` }
return new Cypress.Promise((resolve, reject) => {
request(config.GRAPHQL_URI, mutation, variables).then((response) => {
resolve({ authorization: `Bearer ${response.login}` })
})
})
}
Cypress.Commands.add("switchLanguage", (name, force) => {
@ -81,20 +84,22 @@ Cypress.Commands.add("openPage", page => {
Cypress.Commands.add(
'authenticateAs',
async ({email, password}) => {
const headers = await authenticatedHeaders({ email, password })
return new GraphQLClient(config.GRAPHQL_URI, { headers })
}
)
({email, password}) => {
return new Cypress.Promise((resolve, reject) => {
authenticatedHeaders({ email, password }).then((headers) => {
resolve(new GraphQLClient(config.GRAPHQL_URI, { headers }))
})
})
})
Cypress.Commands.add(
'mutate',
{ prevSubject: true },
async (graphQLClient, mutation, variables) => {
await graphQLClient.request(mutation, variables)
return graphQLClient
}
)
(graphQLClient, mutation, variables) => {
return new Cypress.Promise((resolve, reject) => {
graphQLClient.request(mutation, variables).then(() => resolve(graphQLClient))
})
})
//
//

View File

@ -8,9 +8,7 @@ const neo4jConfigs = {
}
const neodeInstance = getNeode(neo4jConfigs)
beforeEach(async () => {
await cleanDatabase()
})
beforeEach(() => cleanDatabase())
Cypress.Commands.add('neode', () => {
return neodeInstance
@ -19,14 +17,14 @@ Cypress.Commands.add('neode', () => {
Cypress.Commands.add(
'first',
{ prevSubject: true },
async (neode, model, properties) => {
(neode, model, properties) => {
return neode.first(model, properties)
}
)
Cypress.Commands.add(
'relateTo',
{ prevSubject: true },
async (node, otherNode, relationship) => {
(node, otherNode, relationship) => {
return node.relateTo(otherNode, relationship)
}
)
@ -36,9 +34,10 @@ Cypress.Commands.add('factory', () => Factory)
Cypress.Commands.add(
'build',
{ prevSubject: true },
async (factory, name, atrributes, options) => {
await factory.build(name, atrributes, options)
return factory
(factory, name, atrributes, options) => {
return new Cypress.Promise((resolve, reject) => {
return factory.build(name, atrributes, options).then(() => resolve(factory))
})
}
)