UNPKG

2.72 kBJavaScriptView Raw
1'use strict';
2
3const Path = require('path');
4const { expect } = require('code');
5const Hapi = require('hapi');
6const Lab = require('lab');
7const StandIn = require('stand-in');
8const CloudApiGql = require('../lib/');
9const CloudApi = require('../lib/cloudapi');
10
11
12const lab = exports.lab = Lab.script();
13const { describe, it, afterEach } = lab;
14
15
16describe('roles', () => {
17 afterEach(() => {
18 StandIn.restoreAll();
19 });
20
21 it('can get all roles', async () => {
22 const roles = [{
23 id: 'test',
24 name: 'test'
25 }];
26
27 const server = new Hapi.Server();
28 StandIn.replaceOnce(CloudApi.prototype, 'fetch', () => {
29 return roles;
30 });
31
32 await server.register({ plugin: CloudApiGql, options: { keyPath: Path.join(__dirname, 'test.key') } });
33 await server.initialize();
34 const res = await server.inject({
35 url: '/graphql',
36 method: 'post',
37 payload: { query: 'query { roles { id, name } }' }
38 });
39 expect(res.statusCode).to.equal(200);
40 expect(res.result.data.roles).to.exist();
41 expect(res.result.data.roles[0].id).to.equal(roles[0].id);
42 expect(res.result.data.roles[0].name).to.equal(roles[0].name);
43 await server.stop();
44 });
45
46 it('can get a single role from calling roles(name)', async () => {
47 const role = {
48 id: 'test',
49 name: 'test'
50 };
51
52 const server = new Hapi.Server();
53 StandIn.replaceOnce(CloudApi.prototype, 'fetch', () => {
54 return role;
55 });
56
57 await server.register({ plugin: CloudApiGql, options: { keyPath: Path.join(__dirname, 'test.key') } });
58 await server.initialize();
59 const res = await server.inject({
60 url: '/graphql',
61 method: 'post',
62 payload: { query: 'query { roles(name: "test") { id, name } }' }
63 });
64 expect(res.statusCode).to.equal(200);
65 expect(res.result.data.roles).to.exist();
66 expect(res.result.data.roles[0].id).to.equal(role.id);
67 expect(res.result.data.roles[0].name).to.equal(role.name);
68 });
69
70 it('can a single role', async () => {
71 const role = {
72 id: 'test',
73 name: 'test'
74 };
75
76 const server = new Hapi.Server();
77 StandIn.replaceOnce(CloudApi.prototype, 'fetch', () => {
78 return role;
79 });
80
81 await server.register({ plugin: CloudApiGql, options: { keyPath: Path.join(__dirname, 'test.key') } });
82 await server.initialize();
83 const res = await server.inject({
84 url: '/graphql',
85 method: 'post',
86 payload: { query: 'query { role(name: "test") { id, name } }' }
87 });
88 expect(res.statusCode).to.equal(200);
89 expect(res.result.data.role).to.exist();
90 expect(res.result.data.role.id).to.equal(role.id);
91 expect(res.result.data.role.name).to.equal(role.name);
92 });
93});