Usage
easygraphql-mock
will need a basic configuration
in order to use it.
How to use it?
- Import
easygraphql-mock
package. - Read the schema.
-
Initialize the mock, and pass the schema as the first argument.
- If there are multiples schemas pass an array with the schemas an argument.
- Note: In order to use multiples schema files, the queries and mutations must be extended.
- The second argument is optional and it is going to be your custom schema, in case you want to pass it.
In case you have a custom scalar, set it on the second argument, if it's not set it will be {}
One schema file
'use strict'
const easygraphqlMock = require('easygraphql-mock')
const fs = require('fs')
const path = require('path')
const userSchema = fs.readFileSync(path.join(__dirname, 'schema', 'user.gql'), 'utf8')
const mockedSchema = easygraphqlMock(userSchema)
Multiples schemas files
'use strict'
const easygraphqlMock = require('easygraphql-mock')
const fs = require('fs')
const path = require('path')
const userSchema = fs.readFileSync(path.join(__dirname, 'schema', 'user.gql'), 'utf8')
const familySchema = fs.readFileSync(path.join(__dirname, 'schema', 'family.gql'), 'utf8')
const mockedSchema = easygraphqlMock([userSchema, familySchema])
Custom schema
You can set some values to the fields that you want on the schema. To do that, you might pass an object as a second argument. It must have the same name of the type and the field that you want to set.
'use strict'
const easygraphqlMock = require('easygraphql-mock')
const fs = require('fs')
const path = require('path')
const userSchema = fs.readFileSync(path.join(__dirname, 'schema', 'user.gql'), 'utf8')
const familySchema = fs.readFileSync(path.join(__dirname, 'schema', 'family.gql'), 'utf8')
const mockedSchema = easygraphqlMock([userSchema, familySchema], {
CustomScalarDate: '2018-10-10',
Family: {
name: 'Super test 1',
ages: [10],
familyRelation: 'Mother',
familyRelationArr: ['Mother', 'Brother']
}
})
Result
Here is the result of mockedSchema.Family
{
name: 'Super test 1',
ages: [ 10 ],
createdAt: '2018-10-10',
user: {
email: 'ulalilid@herem.gl',
username: 'tNfwN',
fullName: 'Nathan Lewis',
phone: '(231) 616-1744',
family: {
name: 'Super test 1',
ages: [ 10 ],
user: {
email: 'ulalilid@herem.gl',
username: 'tNfwN',
fullName: 'Nathan Lewis',
phone: '(231) 616-1744',
family: ...
},
familyRelation: 'Mother',
familyRelationArr: [ 'Mother', 'Brother' ]
}
},
familyRelation: 'Mother',
familyRelationArr: [ 'Mother', 'Brother' ]
}