1 | 'use strict';
|
2 |
|
3 | const { resolve } = require('path');
|
4 |
|
5 | const chai = require('chai');
|
6 |
|
7 | const { getServiceSpecs } = require('../js/utils');
|
8 |
|
9 | describe('getServiceSpecs', function () {
|
10 | const assert = chai.assert;
|
11 | const projectDir = resolve(__dirname, 'fixtures/project-a');
|
12 |
|
13 | it('get specs from default compose file', async () => {
|
14 | const composeFile = resolve(projectDir, 'dc.prod.yml');
|
15 | const result = await getServiceSpecs(composeFile);
|
16 | assert.deepEqual(result, {
|
17 | 'back-a': {
|
18 | build: { context: './images/back-a' },
|
19 | manifest: {
|
20 | service: 'back-a',
|
21 | cargoApp: true,
|
22 | cargoFrontend: false,
|
23 | watchable: true,
|
24 | unitTests: {
|
25 | enable: true,
|
26 | service: 'test-back-a',
|
27 | dependencies: ['test-store-a']
|
28 | }
|
29 | }
|
30 | },
|
31 | 'back-b': {
|
32 | build: { context: './images/back-b' },
|
33 | manifest: {
|
34 | service: 'back-b',
|
35 | cargoApp: true,
|
36 | cargoFrontend: false,
|
37 | watchable: false,
|
38 | unitTests: {
|
39 | enable: true,
|
40 | service: 'test-back-b'
|
41 | }
|
42 | }
|
43 | },
|
44 | 'back-c': {
|
45 | build: { context: './images/back-c' },
|
46 | manifest: {
|
47 | service: 'back-c',
|
48 | cargoApp: true,
|
49 | cargoFrontend: false,
|
50 | watchable: true,
|
51 | unitTests: {
|
52 | enable: false
|
53 | }
|
54 | }
|
55 | },
|
56 | 'front-a': {
|
57 | build: { context: './images/front-a' },
|
58 | manifest: {
|
59 | service: 'front-a',
|
60 | cargoApp: false,
|
61 | cargoFrontend: true,
|
62 | watchable: true,
|
63 | unitTests: {
|
64 | enable: false
|
65 | }
|
66 | }
|
67 | },
|
68 | 'front-b': {
|
69 | build: { context: './images/front-b' },
|
70 | manifest: {
|
71 | service: 'front-b',
|
72 | cargoApp: false,
|
73 | cargoFrontend: true,
|
74 | watchable: false,
|
75 | unitTests: {
|
76 | enable: false
|
77 | }
|
78 | }
|
79 | },
|
80 | 'store-a': {
|
81 | build: { context: './images/store-a' },
|
82 | manifest: {
|
83 | service: 'store-a',
|
84 | cargoApp: false,
|
85 | cargoFrontend: false,
|
86 | watchable: false,
|
87 | unitTests: {
|
88 | enable: false
|
89 | }
|
90 | }
|
91 | },
|
92 | 'ext-a': {
|
93 | image: 'postgres:9-alpine'
|
94 | }
|
95 | })
|
96 | });
|
97 |
|
98 | });
|