Export a function in server.js and test teardown

This commit is contained in:
Robert Schäfer 2018-12-21 00:37:58 +01:00
parent 6b216be05c
commit ec9c205bee
3 changed files with 46 additions and 38 deletions

View File

@ -1,5 +1,20 @@
import { request } from 'graphql-request'
import server from './server'
import createServer from './server'
let getHost
let app
let port
beforeEach(async () => {
const server = createServer()
app = await server.start({ port: 0 })
port = app.address().port
getHost = () => `http://127.0.0.1:${port}`
})
afterEach(async () => {
await app.close()
})
describe('login', () => {
describe('asking for a `token`', () => {
@ -15,14 +30,6 @@ describe('login', () => {
})
describe('with a non-existing email', () => {
let getHost
beforeEach(async () => {
const app = await server.start({ port: 0 })
const { port } = app.address()
getHost = () => `http://127.0.0.1:${port}`
})
const mutation = `
mutation {
login(email:"user@example.com", password:"asdfasd"){

View File

@ -1,4 +1,4 @@
import server from './server'
import createServer from './server'
const serverConfig = {
port: process.env.GRAPHQL_PORT || 4000
@ -8,6 +8,7 @@ const serverConfig = {
// }
}
const server = createServer()
server.start(serverConfig, options => {
/* eslint-disable-next-line no-console */
console.log(`Server ready at ${process.env.GRAPHQL_URI} 🚀`)

View File

@ -22,10 +22,6 @@ let schema = makeExecutableSchema({
const driver = neo4j().getDriver()
const MOCK = (process.env.MOCK === 'true')
/* eslint-disable-next-line no-console */
console.log('MOCK:', MOCK)
schema = augmentSchema(schema, {
query: {
exclude: ['Statistics', 'LoggedInUser']
@ -36,7 +32,8 @@ schema = augmentSchema(schema, {
})
schema = applyScalars(applyDirectives(schema))
const server = new GraphQLServer({
const createServer = (options) => {
const defaults = {
context: async (req) => {
const payload = {
driver,
@ -55,12 +52,15 @@ const server = new GraphQLServer({
schema: schema,
tracing: true,
middlewares: middleware(schema),
mocks: MOCK ? mocks : false
})
mocks: (process.env.MOCK === 'true') ? mocks : false
}
const server = new GraphQLServer(Object.assign({}, defaults, options))
passport.use('jwt', jwtStrategy())
server.express.use(passport.initialize())
server.express.post('/graphql', passport.authenticate(['jwt'], { session: false }))
return server
}
export default server
export default createServer