Passed
Push — master ( d2bce4...71830f )
by Dmytro
130:29 queued 126:43
created

tests/cli/init.test.js   A

Complexity

Total Complexity 3
Complexity/F 1

Size

Lines of Code 102
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 77
mnd 0
bc 0
fnc 3
dl 0
loc 102
bpm 0
cpm 1
noi 0
c 0
b 0
f 0
rs 10
1
import { assert } from 'chai';
2
import fs from 'fs-extra';
3
import packageInfo from '../../package.json';
4
import Test, { configPath, load } from '../Test';
5
import { CLITester } from '../utils';
6
7
const jiraRunner = load('bin/jira').default;
8
const confluenceRunner = load('bin/confluence').default;
9
10
const factory = new Test();
11
12
suite('cli init');
13
14
before(async function () {
15
    await factory.cleanTmpFolder();
16
});
17
18
test('init profile from jira', async function () {
19
    const config = {
20
        'host'  : 'http://wuztum.nu',
21
        'email' : '[email protected]',
22
        'token' : 'gUOv4Dn4o8iVYy53rrTK',
23
        'jira'  : {
24
            'isUse'     : true,
25
            'isDefault' : false,
26
            'statuses'  : { 'dev': [ '1', '2' ], 'test': [ '3' ] }
27
        },
28
        'confluence' : {
29
            'isUse'     : true,
30
            'isDefault' : false
31
        },
32
        'userId'   : 1,
33
        '_version' : packageInfo.version
34
    };
35
36
    const tester = new CLITester([
37
        { output: 'Enter atlassian host:', input: config.host },
38
        { output: 'Past your email:', input: config.email },
39
        { output: 'Past your token:', input: config.token },
40
        { output: 'is this you?', input: 'y' },
41
        { output: 'Use this credentials for jira calls?', input: 'y' },
42
        { output: 'Make this profile default for jira calls?', input: 'n' },
43
        { output: 'Current Jira statuses in project', input: config.jira.statuses.dev.join(' ') },
44
        { output: 'Enter list of statuses for test', input: config.jira.statuses.test.join(',') },
45
        { output: 'correct?', input: 'y' },
46
        { output: 'Use this credentials for confluence calls?', input: 'y' },
47
        { output: 'Make this profile default for confluence calls?', input: 'n' },
48
        { output: 'Name your profile', input: null }
49
    ], factory);
50
51
    await Promise.all([
52
        tester.test(),
53
        jiraRunner([ 'init' ])
54
    ]);
55
56
    const actualConfig = await fs.readJSON(configPath);
57
58
    assert.deepEqual(actualConfig.default, config);
59
});
60
61
62
test('init profile from confluence', async function () {
63
    const config = {
64
        'host'  : 'http://putevi.tk/vod',
65
        'email' : '[email protected]',
66
        'token' : 's413tG7',
67
        'jira'  : {
68
            'isUse'     : true,
69
            'isDefault' : false,
70
            'statuses'  : { 'dev': [ '1', '2' ], 'test': [ '3' ] }
71
        },
72
        'confluence' : {
73
            'isUse'     : true,
74
            'isDefault' : true
75
        },
76
        'userId'   : 1,
77
        '_version' : packageInfo.version
78
    };
79
80
    const tester = new CLITester([
81
        { output: 'Enter atlassian host:', input: config.host },
82
        { output: 'Past your email:', input: config.email },
83
        { output: 'Past your token:', input: config.token },
84
        { output: 'is this you?', input: 'y' },
85
        { output: 'Use this credentials for jira calls?', input: 'y' },
86
        { output: 'Make this profile default for jira calls?', input: 'n' },
87
        { output: 'Current Jira statuses in project', input: config.jira.statuses.dev.join(', ') },
88
        { output: 'Enter list of statuses for test', input: config.jira.statuses.test.join(' ') },
89
        { output: 'correct?', input: 'y' },
90
        { output: 'Use this credentials for confluence calls?', input: 'y' },
91
        { output: 'Make this profile default for confluence calls?', input: 'Y' },
92
        { output: 'Name your profile', input: 'confluence' }
93
    ], factory);
94
95
    await Promise.all([
96
        tester.test(),
97
        confluenceRunner([ 'init' ])
98
    ]);
99
100
    const actualConfig = await fs.readJSON(configPath);
101
102
    assert.deepEqual(actualConfig.confluence, config);
103
});
104