UNPKG

1.3 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('datacenters', () => {
17 afterEach(() => {
18 StandIn.restoreAll();
19 });
20
21 it('can get all datacenters', async () => {
22 const datacenters = {
23 'us-west-1': 'http://test.com'
24 };
25
26 const server = new Hapi.Server();
27 StandIn.replaceOnce(CloudApi.prototype, 'fetch', () => {
28 return datacenters;
29 });
30
31 await server.register({ plugin: CloudApiGql, options: { keyPath: Path.join(__dirname, 'test.key') } });
32 await server.initialize();
33 const res = await server.inject({
34 url: '/graphql',
35 method: 'post',
36 payload: { query: 'query { datacenters { name, place, url } }' }
37 });
38 expect(res.statusCode).to.equal(200);
39 expect(res.result.data.datacenters).to.exist();
40 expect(res.result.data.datacenters[0].place).to.equal('Americas');
41 expect(res.result.data.datacenters[0].name).to.equal('us-west-1');
42 expect(res.result.data.datacenters[0].url).to.equal('http://test.com');
43 });
44});