graphql-document-collector
Version:
Load up smartly, in one location, all of the GraphQL queries/mutations/subscriptions of your project
49 lines • 2.79 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var chai_1 = require("chai");
var loader_1 = require("../loader");
var path = require("path");
describe('GraphQL project loader', function () {
describe('loadDocument', function () {
it('should be able to load a query document', function () {
return loader_1.loadDocument(path.join(__dirname, '..', '..', 'example', 'queries', 'ListMovies.graphql'))
.then(function (doc) {
chai_1.assert.equal(doc.kind, 'Document');
chai_1.assert.equal(doc.name.value, 'ListMovies.graphql');
chai_1.assert.equal(doc.definitions.length, 1);
chai_1.assert.equal(doc.definitions[0].kind, 'OperationDefinition');
chai_1.assert.equal(doc.definitions[0].name.value, 'ListMovies');
});
});
it('should be able to load a fragment document', function () {
return loader_1.loadDocument(path.join(__dirname, '..', '..', 'example', 'fragments', 'onFilm', 'Movie.graphql'))
.then(function (doc) {
chai_1.assert.equal(doc.kind, 'Document');
chai_1.assert.equal(doc.name.value, 'Movie.graphql');
chai_1.assert.equal(doc.definitions.length, 1);
chai_1.assert.equal(doc.definitions[0].kind, 'FragmentDefinition');
chai_1.assert.equal(doc.definitions[0].name.value, 'Movie');
});
});
});
describe('loadGlob', function () {
it('should load the whole structure of documents in an extended AST', function () {
return Promise.all([
loader_1.loadGlob(path.join(__dirname, '..', '..', 'example'), '**/*.graphql'),
loader_1.loadDocument(path.join(__dirname, '..', '..', 'example', 'queries', 'ListMovies.graphql')),
loader_1.loadDocument(path.join(__dirname, '..', '..', 'example', 'fragments', 'onFilm', 'Movie.graphql')),
])
.then(function (_a) {
var root = _a[0], queryDoc = _a[1], fragmentDoc = _a[2];
chai_1.assert.equal(root.kind, 'DocumentDirectory');
chai_1.assert.equal(root.name.value, 'example');
chai_1.assert.equal(root.directories[0].name.value, 'fragments');
chai_1.assert.equal(root.directories[0].directories[0].name.value, 'onFilm');
chai_1.assert.deepEqual(root.directories[0].directories[0].documents[0], fragmentDoc);
chai_1.assert.equal(root.directories[1].name.value, 'queries');
chai_1.assert.deepEqual(root.directories[1].documents[0], queryDoc);
});
});
});
});
//# sourceMappingURL=loader.js.map
;