UNPKG

2.69 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('webconsole-cloudapi-client');
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 const register = {
22 plugin: CloudApiGql,
23 options: {
24 keyPath: Path.join(__dirname, 'test.key'),
25 keyId: 'test',
26 apiBaseUrl: 'http://localhost'
27 }
28 };
29
30 it('can get all roles', async () => {
31 const roles = [{
32 id: 'test',
33 name: 'test'
34 }];
35
36 const server = new Hapi.Server();
37 StandIn.replaceOnce(CloudApi.prototype, 'fetch', () => {
38 return roles;
39 });
40
41 await server.register(register);
42 await server.initialize();
43 const res = await server.inject({
44 url: '/graphql',
45 method: 'post',
46 payload: { query: 'query { roles { id, name } }' }
47 });
48 expect(res.statusCode).to.equal(200);
49 expect(res.result.data.roles).to.exist();
50 expect(res.result.data.roles[0].id).to.equal(roles[0].id);
51 expect(res.result.data.roles[0].name).to.equal(roles[0].name);
52 await server.stop();
53 });
54
55 it('can get a single role from calling roles(name)', async () => {
56 const role = {
57 id: 'test',
58 name: 'test'
59 };
60
61 const server = new Hapi.Server();
62 StandIn.replaceOnce(CloudApi.prototype, 'fetch', () => {
63 return role;
64 });
65
66 await server.register(register);
67 await server.initialize();
68 const res = await server.inject({
69 url: '/graphql',
70 method: 'post',
71 payload: { query: 'query { roles(name: "test") { id, name } }' }
72 });
73 expect(res.statusCode).to.equal(200);
74 expect(res.result.data.roles).to.exist();
75 expect(res.result.data.roles[0].id).to.equal(role.id);
76 expect(res.result.data.roles[0].name).to.equal(role.name);
77 });
78
79 it('can a single role', async () => {
80 const role = {
81 id: 'test',
82 name: 'test'
83 };
84
85 const server = new Hapi.Server();
86 StandIn.replaceOnce(CloudApi.prototype, 'fetch', () => {
87 return role;
88 });
89
90 await server.register(register);
91 await server.initialize();
92 const res = await server.inject({
93 url: '/graphql',
94 method: 'post',
95 payload: { query: 'query { role(name: "test") { id, name } }' }
96 });
97 expect(res.statusCode).to.equal(200);
98 expect(res.result.data.role).to.exist();
99 expect(res.result.data.role.id).to.equal(role.id);
100 expect(res.result.data.role.name).to.equal(role.name);
101 });
102});