forked from fastify/github-action-merge-dependabot
-
Notifications
You must be signed in to change notification settings - Fork 1
/
util.test.js
107 lines (104 loc) · 3.19 KB
/
util.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
'use strict'
const tap = require('tap')
const {
getInputs,
parseCommaOrSemicolonSeparatedValue,
} = require('../src/util')
tap.test('parseCommaOrSemicolonSeparatedValue', async t => {
t.test('should split semicolon separated values correctly', async t => {
t.same(parseCommaOrSemicolonSeparatedValue('test1;test2;test3'), [
'test1',
'test2',
'test3',
])
t.same(parseCommaOrSemicolonSeparatedValue(' test1; test2; test3'), [
'test1',
'test2',
'test3',
])
})
t.test('should split comma separated values correctly', async t => {
t.same(parseCommaOrSemicolonSeparatedValue('test1,test2,test3'), [
'test1',
'test2',
'test3',
])
t.same(parseCommaOrSemicolonSeparatedValue(' test1, test2, test3'), [
'test1',
'test2',
'test3',
])
})
})
const BOOLEAN_INPUTS = [
{ input: 'approve-only', key: 'APPROVE_ONLY' },
{ input: 'use-github-auto-merge', key: 'USE_GITHUB_AUTO_MERGE' },
{
input: 'skip-commit-verification',
key: 'SKIP_COMMIT_VERIFICATION',
},
]
tap.test('getInputs', async t => {
t.test('should fail if no inputs object is provided', async t => {
t.throws(() => getInputs())
})
t.test(
'should return the correct inputs with default value if needed',
async t => {
t.test('MERGE_METHOD', async t => {
t.equal(getInputs({}).MERGE_METHOD, 'squash')
t.equal(getInputs({ 'merge-method': 'merge' }).MERGE_METHOD, 'merge')
t.equal(
getInputs({ 'merge-method': 'invalid-merge-method' }).MERGE_METHOD,
'squash'
)
})
t.test('EXCLUDE_PKGS', async t => {
t.same(getInputs({ exclude: 'react,vue' }).EXCLUDE_PKGS, [
'react',
'vue',
])
})
t.test('MERGE_COMMENT', async t => {
t.equal(getInputs({}).MERGE_COMMENT, '')
t.equal(
getInputs({ 'merge-comment': 'test-merge-comment' }).MERGE_COMMENT,
'test-merge-comment'
)
})
t.test('BOOLEAN INPUTS', async t => {
BOOLEAN_INPUTS.forEach(({ input, key }) => {
t.equal(getInputs({})[key], false)
t.equal(getInputs({ [input]: 'false' })[key], false)
t.equal(getInputs({ [input]: 'False' })[key], false)
t.equal(getInputs({ [input]: 'FALSE' })[key], false)
t.equal(getInputs({ [input]: 'true' })[key], true)
t.equal(getInputs({ [input]: 'True' })[key], true)
t.equal(getInputs({ [input]: 'TRUE' })[key], true)
})
})
t.test('TARGET', async t => {
t.equal(
getInputs({ target: 'major' }).TARGET,
'version-update:semver-major'
)
t.equal(
getInputs({ target: 'minor' }).TARGET,
'version-update:semver-minor'
)
t.equal(
getInputs({ target: 'patch' }).TARGET,
'version-update:semver-patch'
)
t.equal(getInputs({ target: '' }).TARGET, 'version-update:semver-any')
t.equal(
getInputs({ target: 'any' }).TARGET,
'version-update:semver-any'
)
})
t.test('PR_NUMBER', async t => {
t.equal(getInputs({ 'pr-number': '10' }).PR_NUMBER, '10')
})
}
)
})