Comparing version 4.1.0 to 5.0.0
@@ -17,3 +17,3 @@ 'use strict'; | ||
module.exports = function (server, options, next) { | ||
exports.register = function (server, options) { | ||
const settings = Object.assign({}, internals.defaults, options); | ||
@@ -53,13 +53,8 @@ | ||
} | ||
next(); | ||
}; | ||
exports.pkg = Package; | ||
module.exports.attributes = { | ||
pkg: Package | ||
}; | ||
internals.graphqlHandler = async function (request, reply) { | ||
internals.graphqlHandler = async function (request, h) { | ||
const source = request.method.toUpperCase() === 'GET' ? request.query : request.payload; | ||
@@ -70,3 +65,3 @@ | ||
if (variables && variables.isBoom) { | ||
return reply(variables); | ||
return variables; | ||
} | ||
@@ -78,3 +73,3 @@ | ||
} catch (err) { | ||
return reply(Boom.badRequest('invalid GraqhQL request', err)); | ||
return Boom.badRequest('invalid GraqhQL request', err); | ||
} | ||
@@ -84,3 +79,3 @@ | ||
if (errors.length) { | ||
return reply(Boom.badRequest(errors.join(', '))); | ||
return Boom.badRequest(errors.join(', ')); | ||
} | ||
@@ -90,10 +85,10 @@ | ||
const result = await Graphql.execute(this.schema, queryAST, this.resolvers, request, variables, operationName); | ||
if (result && result.errors) { | ||
if (result.errors) { | ||
request.log(['error', 'graqhql-error'], result); | ||
} | ||
reply(result).type('application/json'); | ||
return result; | ||
} catch (ex) { | ||
request.log(['error', 'graqhql-error'], ex); | ||
reply(ex).type('application/json'); | ||
return ex; | ||
} | ||
@@ -116,3 +111,3 @@ }; | ||
internals.graphiqlHandler = function (request, reply) { | ||
internals.graphiqlHandler = function (request, h) { | ||
const query = request.query; | ||
@@ -122,3 +117,3 @@ const variables = query.variables || '{}'; | ||
reply(Graphiql.renderGraphiQL({ | ||
return Graphiql.renderGraphiQL({ | ||
endpointURL: prefix + this.settings.graphqlPath, | ||
@@ -128,3 +123,3 @@ query: query.query, | ||
operationName: query.operationName | ||
})); | ||
}); | ||
}; |
{ | ||
"name": "graphi", | ||
"version": "4.1.0", | ||
"version": "5.0.0", | ||
"description": "hapi graphql plugin", | ||
@@ -28,13 +28,13 @@ "main": "lib", | ||
"devDependencies": { | ||
"belly-button": "^4.0.0", | ||
"code": "^5.1.2", | ||
"hapi": "^16.5.0", | ||
"lab": "^15.1.2", | ||
"scalars": "^0.1.0" | ||
"belly-button": "4.x.x", | ||
"code": "5.x.x", | ||
"hapi": "17.x.x", | ||
"lab": "15.x.x", | ||
"scalars": "0.x.x" | ||
}, | ||
"dependencies": { | ||
"boom": "^5.2.0", | ||
"graphql": "^0.11.7", | ||
"graphql-server-module-graphiql": "^1.2.0" | ||
"boom": "7.x.x", | ||
"graphql": "0.11.x", | ||
"graphql-server-module-graphiql": "1.2.x" | ||
} | ||
} |
@@ -30,3 +30,3 @@ # graphi | ||
const getPerson = function (args, request) { | ||
return Promise.resolve({ firstname: 'billy', lastname: 'jean' }); | ||
return { firstname: 'billy', lastname: 'jean' }; | ||
}; | ||
@@ -38,7 +38,4 @@ | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
// server is ready to be started | ||
}); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
``` | ||
@@ -59,3 +56,3 @@ | ||
resolve: (root, { firstname }, request) => { | ||
return Promise.resolve(firstname); | ||
return firstname; | ||
} | ||
@@ -67,7 +64,4 @@ } | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
server.register({ register: Graphi, options: { schema } }, (err) => { | ||
// server is ready to be started | ||
}); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema } }); | ||
``` |
@@ -20,15 +20,8 @@ 'use strict'; | ||
describe('graphi', () => { | ||
it('can be registered with hapi', () => { | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
return new Promise((resolve) => { | ||
server.register(Graphi, (err) => { | ||
expect(err).to.not.exist(); | ||
resolve(); | ||
}); | ||
}); | ||
it('can be registered with hapi', async () => { | ||
const server = Hapi.server(); | ||
await server.register(Graphi); | ||
}); | ||
it('will handle graphql GET requests with promise resolver', () => { | ||
it('will handle graphql GET requests with promise resolver', async () => { | ||
const schema = ` | ||
@@ -48,3 +41,3 @@ type Person { | ||
expect(request.path).to.equal('/graphql'); | ||
return Promise.resolve({ firstname: 'tom', lastname: 'arnold' }); | ||
return { firstname: 'tom', lastname: 'arnold' }; | ||
}; | ||
@@ -56,20 +49,12 @@ | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
const url = '/graphql?query=%7B%0A%20%20person(firstname%3A%22tom%22)%20%7B%0A%20%20%20%20lastname%0A%20%20%7D%0A%7D&variables=%7B%22hi%22%3A%20true%7D'; | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const url = '/graphql?query=%7B%0A%20%20person(firstname%3A%22tom%22)%20%7B%0A%20%20%20%20lastname%0A%20%20%7D%0A%7D&variables=%7B%22hi%22%3A%20true%7D'; | ||
server.inject({ method: 'GET', url }, (res) => { | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.person.lastname).to.equal('arnold'); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'GET', url }); | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.person.lastname).to.equal('arnold'); | ||
}); | ||
it('will handle graphql GET requests GraphQL instance schema', () => { | ||
it('will handle graphql GET requests GraphQL instance schema', async () => { | ||
const schema = new GraphQLSchema({ | ||
@@ -85,3 +70,3 @@ query: new GraphQLObjectType({ | ||
resolve: (root, { firstname }, request) => { | ||
return Promise.resolve(firstname); | ||
return firstname; | ||
} | ||
@@ -93,20 +78,12 @@ } | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema } }); | ||
const url = '/graphql?query=' + encodeURIComponent('{ person(firstname: "tom")}'); | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const url = '/graphql?query=' + encodeURIComponent('{ person(firstname: "tom")}'); | ||
server.inject({ method: 'GET', url }, (res) => { | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.person).to.equal('tom'); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'GET', url }); | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.person).to.equal('tom'); | ||
}); | ||
it('will handle graphql POST requests with query', () => { | ||
it('will handle graphql POST requests with query', async () => { | ||
const schema = ` | ||
@@ -127,3 +104,3 @@ type Person { | ||
expect(request.path).to.equal('/graphql'); | ||
return Promise.resolve({ firstname: '', lastname: 'jean', email: 'what' }); | ||
return { firstname: '', lastname: 'jean', email: 'what' }; | ||
}; | ||
@@ -135,19 +112,12 @@ | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const payload = { query: 'query { person(firstname: "billy") { lastname, email } }' }; | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
const payload = { query: 'query { person(firstname: "billy") { lastname, email } }' }; | ||
server.inject({ method: 'POST', url: '/graphql', payload }, (res) => { | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.person.lastname).to.equal('jean'); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'POST', url: '/graphql', payload }); | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.person.lastname).to.equal('jean'); | ||
}); | ||
it('will handle graphql POST requests with query using GraphQL schema objects', () => { | ||
it('will handle graphql POST requests with query using GraphQL schema objects', async () => { | ||
const schema = new GraphQL.GraphQLSchema({ | ||
@@ -162,3 +132,3 @@ query: new GraphQL.GraphQLObjectType({ | ||
expect(args.firstname).to.equal('billy'); | ||
return Promise.resolve('jean'); | ||
return 'jean'; | ||
} | ||
@@ -170,20 +140,12 @@ } | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema } }); | ||
const payload = { query: 'query { person(firstname: "billy") }' }; | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const payload = { query: 'query { person(firstname: "billy") }' }; | ||
server.inject({ method: 'POST', url: '/graphql', payload }, (res) => { | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.person).to.equal('jean'); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'POST', url: '/graphql', payload }); | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.person).to.equal('jean'); | ||
}); | ||
it('will handle graphql POST requests with mutations', () => { | ||
it('will handle graphql POST requests with mutations', async () => { | ||
const schema = ` | ||
@@ -208,3 +170,3 @@ type Person { | ||
expect(request.path).to.equal('/graphql'); | ||
return Promise.resolve({ firstname: 'billy', lastname: 'jean' }); | ||
return { firstname: 'billy', lastname: 'jean' }; | ||
}; | ||
@@ -216,3 +178,3 @@ | ||
expect(request.path).to.equal('/graphql'); | ||
return Promise.resolve({ firstname: 'billy', lastname: 'jean' }); | ||
return { firstname: 'billy', lastname: 'jean' }; | ||
}; | ||
@@ -225,20 +187,12 @@ | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
const payload = { query: 'mutation { createPerson(firstname: "billy", lastname: "jean") { lastname } }' }; | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const payload = { query: 'mutation { createPerson(firstname: "billy", lastname: "jean") { lastname } }' }; | ||
server.inject({ method: 'POST', url: '/graphql', payload }, (res) => { | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.createPerson.lastname).to.equal('jean'); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'POST', url: '/graphql', payload }); | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.createPerson.lastname).to.equal('jean'); | ||
}); | ||
it('will error with requests that include unknown directives', () => { | ||
it('will error with requests that include unknown directives', async () => { | ||
const schema = ` | ||
@@ -258,3 +212,3 @@ type Person { | ||
expect(request.path).to.equal('/graphql'); | ||
return Promise.resolve({ firstname: '', lastname: 'jean' }); | ||
return { firstname: '', lastname: 'jean' }; | ||
}; | ||
@@ -266,20 +220,12 @@ | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
const payload = { query: 'query { person(firstname: "billy") { lastname @foo(min: 2) } }' }; | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const payload = { query: 'query { person(firstname: "billy") { lastname @foo(min: 2) } }' }; | ||
server.inject({ method: 'POST', url: '/graphql', payload }, (res) => { | ||
expect(res.statusCode).to.equal(400); | ||
expect(res.result.message).to.contain('Unknown directive'); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'POST', url: '/graphql', payload }); | ||
expect(res.statusCode).to.equal(400); | ||
expect(res.result.message).to.contain('Unknown directive'); | ||
}); | ||
it('will handle graphql GET requests with invalid variables', () => { | ||
it('will handle graphql GET requests with invalid variables', async () => { | ||
const schema = ` | ||
@@ -306,19 +252,11 @@ type Person { | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
const url = '/graphql?query=%7B%0A%20%20person(firstname%3A%22tom%22)%20%7B%0A%20%20%20%20lastname%0A%20%20%7D%0A%7D&variables=invalid'; | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const url = '/graphql?query=%7B%0A%20%20person(firstname%3A%22tom%22)%20%7B%0A%20%20%20%20lastname%0A%20%20%7D%0A%7D&variables=invalid'; | ||
server.inject({ method: 'GET', url }, (res) => { | ||
expect(res.statusCode).to.equal(400); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'GET', url }); | ||
expect(res.statusCode).to.equal(400); | ||
}); | ||
it('will wrap 400 errors', () => { | ||
it('will wrap 400 errors', async () => { | ||
const schema = ` | ||
@@ -345,19 +283,40 @@ type Person { | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
const url = '/graphql?query={}'; | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const url = '/graphql?query={}'; | ||
const res = await server.inject({ method: 'GET', url }); | ||
expect(res.statusCode).to.equal(400); | ||
}); | ||
server.inject({ method: 'GET', url }, (res) => { | ||
expect(res.statusCode).to.equal(400); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
it('will log result with errors property', async () => { | ||
const schema = ` | ||
type Person { | ||
firstname: String! | ||
lastname: String! | ||
} | ||
type Query { | ||
person(firstname: String!): Person! | ||
} | ||
`; | ||
const getPerson = function (args, request) { | ||
expect(args.firstname).to.equal('tom'); | ||
expect(request.path).to.equal('/graphql'); | ||
return { errors: [new Error()] }; | ||
}; | ||
const resolvers = { | ||
person: getPerson | ||
}; | ||
const server = Hapi.server(); | ||
server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
const url = '/graphql?query=%7B%0A%20%20person(firstname%3A%22tom%22)%20%7B%0A%20%20%20%20lastname%0A%20%20%7D%0A%7D&variables=%7B%22hi%22%3A%20true%7D'; | ||
await server.inject({ method: 'GET', url }); | ||
}); | ||
it('will wrap errors with a promise resolver', () => { | ||
it('will wrap errors with a promise resolver', async () => { | ||
const schema = ` | ||
@@ -384,20 +343,43 @@ type Person { | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
const url = '/graphql?query=%7B%0A%20%20person(firstname%3A%22tom%22)%20%7B%0A%20%20%20%20lastname%0A%20%20%7D%0A%7D'; | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const url = '/graphql?query=%7B%0A%20%20person(firstname%3A%22tom%22)%20%7B%0A%20%20%20%20lastname%0A%20%20%7D%0A%7D'; | ||
const res = await server.inject({ method: 'GET', url }); | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.errors).to.exist(); | ||
}); | ||
server.inject({ method: 'GET', url }, (res) => { | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.errors).to.exist(); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
it('will wrap errors thrown in resolver', async () => { | ||
const schema = ` | ||
type Person { | ||
firstname: String! | ||
lastname: String! | ||
} | ||
type Query { | ||
person(firstname: String!): Person! | ||
} | ||
`; | ||
const getPerson = function (args, request) { | ||
expect(args.firstname).to.equal('tom'); | ||
expect(request.path).to.equal('/graphql'); | ||
throw new Error('my custom error'); | ||
}; | ||
const resolvers = { | ||
person: getPerson | ||
}; | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
const url = '/graphql?query=%7B%0A%20%20person(firstname%3A%22tom%22)%20%7B%0A%20%20%20%20lastname%0A%20%20%7D%0A%7D'; | ||
const res = await server.inject({ method: 'GET', url }); | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.errors).to.exist(); | ||
}); | ||
it('will serve the GraphiQL UI', () => { | ||
it('will serve the GraphiQL UI', async () => { | ||
const schema = ` | ||
@@ -422,19 +404,11 @@ type Person { | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }, { routes: { prefix: '/test' } }); | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, { routes: { prefix: '/test' } }, (err) => { | ||
expect(err).to.not.exist(); | ||
server.inject({ method: 'GET', url: '/test/graphiql' }, (res) => { | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result).to.contain('<html>'); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'GET', url: '/test/graphiql' }); | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result).to.contain('<html>'); | ||
}); | ||
it('will serve the GraphiQL UI prepopulated with the query', () => { | ||
it('will serve the GraphiQL UI prepopulated with the query', async () => { | ||
const schema = ` | ||
@@ -459,19 +433,11 @@ type Person { | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
expect(err).to.not.exist(); | ||
server.inject({ method: 'GET', url: '/graphiql?query=%7B%0A%20%20person(firstname%3A%22tom%22)%20%7B%0A%20%20%20%20lastname%0A%20%20%7D%0A%7D&variables=%7B%22hi%22%3A%20true%7D' }, (res) => { | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result).to.contain('person'); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'GET', url: '/graphiql?query=%7B%0A%20%20person(firstname%3A%22tom%22)%20%7B%0A%20%20%20%20lastname%0A%20%20%7D%0A%7D&variables=%7B%22hi%22%3A%20true%7D' }); | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result).to.contain('person'); | ||
}); | ||
it('can disable GraphiQL UI', () => { | ||
it('can disable GraphiQL UI', async () => { | ||
const schema = ` | ||
@@ -496,18 +462,10 @@ type Person { | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers, graphiqlPath: false } }); | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers, graphiqlPath: false } }, (err) => { | ||
expect(err).to.not.exist(); | ||
server.inject({ method: 'GET', url: '/graphiql' }, (res) => { | ||
expect(res.statusCode).to.equal(404); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'GET', url: '/graphiql' }); | ||
expect(res.statusCode).to.equal(404); | ||
}); | ||
it('will handle nested queries', () => { | ||
it('will handle nested queries', async () => { | ||
const schema = ` | ||
@@ -543,23 +501,15 @@ type Person { | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
const payload = { | ||
query: 'query GetPersonsFriend($firstname: String!, $friendsFirstname: String!) { person(firstname: $firstname) { friends(firstname: $friendsFirstname) { lastname } } }', | ||
variables: { firstname: 'billy', friendsFirstname: 'michael' } | ||
}; | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const payload = { | ||
query: 'query GetPersonsFriend($firstname: String!, $friendsFirstname: String!) { person(firstname: $firstname) { friends(firstname: $friendsFirstname) { lastname } } }', | ||
variables: { firstname: 'billy', friendsFirstname: 'michael' } | ||
}; | ||
server.inject({ method: 'POST', url: '/graphql', payload }, (res) => { | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.person.friends[0].lastname).to.equal('jackson'); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'POST', url: '/graphql', payload }); | ||
expect(res.statusCode).to.equal(200); | ||
expect(res.result.data.person.friends[0].lastname).to.equal('jackson'); | ||
}); | ||
it('will handle invalid queries in POST request', () => { | ||
it('will handle invalid queries in POST request', async () => { | ||
const schema = ` | ||
@@ -595,20 +545,13 @@ type Person { | ||
const server = new Hapi.Server(); | ||
server.connection(); | ||
const server = Hapi.server(); | ||
await server.register({ plugin: Graphi, options: { schema, resolvers } }); | ||
return new Promise((resolve) => { | ||
server.register({ register: Graphi, options: { schema, resolvers } }, (err) => { | ||
expect(err).to.not.exist(); | ||
const payload = { | ||
query: 'query GetPersonsF} }', | ||
variables: { firstname: 'billy', friendsFirstname: 'michael' } | ||
}; | ||
const payload = { | ||
query: 'query GetPersonsF} }', | ||
variables: { firstname: 'billy', friendsFirstname: 'michael' } | ||
}; | ||
server.inject({ method: 'POST', url: '/graphql', payload }, (res) => { | ||
expect(res.statusCode).to.equal(400); | ||
resolve(); | ||
}); | ||
}); | ||
}); | ||
const res = await server.inject({ method: 'POST', url: '/graphql', payload }); | ||
expect(res.statusCode).to.equal(400); | ||
}); | ||
}); |
38368
558
64
+ Addedboom@7.3.0(transitive)
+ Addedgraphql-server-module-graphiql@1.2.0(transitive)
+ Addedhoek@6.1.3(transitive)
- Removedboom@5.3.3(transitive)
- Removedgraphql-server-module-graphiql@1.4.1(transitive)
- Removedhoek@4.3.1(transitive)
Updatedboom@7.x.x
Updatedgraphql@0.11.x