UNPKG

2.04 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('packages', () => {
17 const packageObj = {
18 id: '7b17343c-94af-6266-e0e8-893a3b9993d0',
19 name: 'sdc_128',
20 memory: 128,
21 disk: 12288,
22 swap: 256,
23 vcpus: 1,
24 lwps: 1000,
25 default: false,
26 version: '1.0.0'
27 };
28
29 afterEach(() => {
30 StandIn.restoreAll();
31 });
32
33 it('can get all packages', async () => {
34 const server = new Hapi.Server();
35 StandIn.replaceOnce(CloudApi.prototype, 'fetch', (stand) => {
36 return [packageObj];
37 });
38
39 await server.register({ plugin: CloudApiGql, options: { keyPath: Path.join(__dirname, 'test.key') } });
40 await server.initialize();
41 const res = await server.inject({
42 url: '/graphql',
43 method: 'post',
44 payload: { query: 'query { packages { id name } }' }
45 });
46 expect(res.statusCode).to.equal(200);
47 expect(res.result.data.packages.length).to.equal(1);
48 expect(res.result.data.packages[0].id).to.equal(packageObj.id);
49 expect(res.result.data.packages[0].name).to.equal(packageObj.name);
50 });
51
52 it('can get a package', async () => {
53 const server = new Hapi.Server();
54 StandIn.replaceOnce(CloudApi.prototype, 'fetch', (stand) => {
55 return packageObj;
56 });
57
58 await server.register({ plugin: CloudApiGql, options: { keyPath: Path.join(__dirname, 'test.key') } });
59 await server.initialize();
60 const res = await server.inject({
61 url: '/graphql',
62 method: 'post',
63 payload: { query: `query { package(id: "${packageObj.id}") { id name } }` }
64 });
65 expect(res.statusCode).to.equal(200);
66 expect(res.result.data.package.id).to.equal(packageObj.id);
67 expect(res.result.data.package.name).to.equal(packageObj.name);
68 });
69});