UNPKG

2.09 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('packages', () => {
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 const packageObj = {
31 id: '7b17343c-94af-6266-e0e8-893a3b9993d0',
32 name: 'sdc_128',
33 memory: 128,
34 disk: 12288,
35 swap: 256,
36 vcpus: 1,
37 lwps: 1000,
38 default: false,
39 version: '1.0.0'
40 };
41
42 it('can get all packages', async () => {
43 const server = new Hapi.Server();
44 StandIn.replaceOnce(CloudApi.prototype, 'fetch', (stand) => {
45 return [packageObj];
46 });
47
48 await server.register(register);
49 await server.initialize();
50 const res = await server.inject({
51 url: '/graphql',
52 method: 'post',
53 payload: { query: 'query { packages { id name } }' }
54 });
55 expect(res.statusCode).to.equal(200);
56 expect(res.result.data.packages.length).to.equal(1);
57 expect(res.result.data.packages[0].id).to.equal(packageObj.id);
58 expect(res.result.data.packages[0].name).to.equal(packageObj.name);
59 });
60
61 it('can get a package', async () => {
62 const server = new Hapi.Server();
63 StandIn.replaceOnce(CloudApi.prototype, 'fetch', (stand) => {
64 return packageObj;
65 });
66
67 await server.register(register);
68 await server.initialize();
69 const res = await server.inject({
70 url: '/graphql',
71 method: 'post',
72 payload: { query: `query { package(id: "${packageObj.id}") { id name } }` }
73 });
74 expect(res.statusCode).to.equal(200);
75 expect(res.result.data.package.id).to.equal(packageObj.id);
76 expect(res.result.data.package.name).to.equal(packageObj.name);
77 });
78});