Merge branch 'master' of github.com:Human-Connection/Human-Connection into 3054-add-e2e-tests-image-uploader

This commit is contained in:
mattwr18 2020-02-18 09:38:56 +01:00
commit ee3a85f70f
8 changed files with 68 additions and 44 deletions

View File

@ -967,7 +967,6 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
[...Array(4).keys()].map(() =>
Factory.build(
'comment',
4,
{},
{
author: jennyRostock,

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 => {
@ -51,10 +53,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) => {
@ -63,10 +67,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);
@ -143,10 +149,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')
})
@ -355,10 +363,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))
})
}
)

View File

@ -2,3 +2,5 @@ MAPBOX_TOKEN="pk.eyJ1IjoiaHVtYW4tY29ubmVjdGlvbiIsImEiOiJjajl0cnBubGoweTVlM3VwZ2l
SENTRY_DSN_WEBAPP=
COMMIT=
PUBLIC_REGISTRATION=false
WEBSOCKETS_URI=ws://localhost:3000/api/graphql
GRAPHQL_URI=http://localhost:4000/

View File

@ -4,7 +4,13 @@ import dotenv from 'dotenv'
dotenv.config() // we want to synchronize @nuxt-dotenv and nuxt-env
const pkg = require('./package')
export const envWhitelist = ['NODE_ENV', 'MAPBOX_TOKEN', 'PUBLIC_REGISTRATION']
export const envWhitelist = [
'NODE_ENV',
'MAPBOX_TOKEN',
'PUBLIC_REGISTRATION',
'WEBSOCKETS_URI',
'GRAPHQL_URI',
]
const dev = process.env.NODE_ENV !== 'production'
const styleguidePath = '../styleguide'

View File

@ -5,11 +5,12 @@ const fragmentMatcher = new IntrospectionFragmentMatcher({
introspectionQueryResultData,
})
export default ({ app }) => {
const backendUrl = process.env.GRAPHQL_URI || 'http://localhost:4000'
export default ({ req, nuxtState }) => {
const { env } = req || nuxtState
const backendUrl = env.GRAPHQL_URI || 'http://localhost:4000'
return {
wsEndpoint: process.env.WEBSOCKETS_URI || 'ws://localhost:4000/graphql',
wsEndpoint: env.WEBSOCKETS_URI || 'ws://localhost:4000/graphql',
httpEndpoint: process.server ? backendUrl : '/api',
httpLinkOptions: {
credentials: 'same-origin',