forked from nodejs/core-validate-commit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsubsystem.js
92 lines (80 loc) · 2.3 KB
/
subsystem.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
'use strict'
const test = require('tap').test
const Rule = require('../../lib/rules/subsystem')
const Commit = require('gitlint-parser-node')
const Validator = require('../../')
test('rule: subsystem', (t) => {
t.test('invalid', (tt) => {
tt.plan(7)
const v = new Validator()
const context = new Commit({
sha: 'e7c077c610afa371430180fbd447bfef60ebc5ea'
, author: {
name: 'Evan Lucas'
, email: 'evanlucas@me.com'
, date: '2016-04-12T19:42:23Z'
}
, message: 'fhqwhgads: come on'
}, v)
context.report = (opts) => {
tt.pass('called report')
tt.equal(opts.id, 'subsystem', 'id')
tt.equal(opts.message, 'Invalid subsystem: "fhqwhgads"', 'message')
tt.equal(opts.string, 'fhqwhgads: come on', 'string')
tt.equal(opts.line, 0, 'line')
tt.equal(opts.column, 0, 'column')
tt.equal(opts.level, 'fail', 'level')
tt.end()
}
Rule.validate(context, {options: {subsystems: Rule.defaults.subsystems}})
})
t.test('skip for release commit', (tt) => {
tt.plan(2)
const v = new Validator()
const context = new Commit({
sha: 'e7c077c610afa371430180fbd447bfef60ebc5ea'
, author: {
name: 'Evan Lucas'
, email: 'evanlucas@me.com'
, date: '2016-04-12T19:42:23Z'
}
, message: '2016-04-12, Version x.y.z'
}, v)
context.report = (opts) => {
tt.pass('called report')
tt.strictSame(opts, {
id: 'subsystem'
, message: 'Release commits do not have subsystems'
, string: ''
, level: 'skip'
})
tt.end()
}
Rule.validate(context, {options: {subsystems: Rule.defaults.subsystems}})
})
t.test('valid', (tt) => {
tt.plan(2)
const v = new Validator()
const context = new Commit({
sha: 'e7c077c610afa371430180fbd447bfef60ebc5ea'
, author: {
name: 'Evan Lucas'
, email: 'evanlucas@me.com'
, date: '2016-04-12T19:42:23Z'
}
, message: 'quic: come on, fhqwhgads'
}, v)
context.report = (opts) => {
tt.pass('called report')
tt.strictSame(opts, {
id: 'subsystem'
, message: 'valid subsystems'
, string: 'quic'
, level: 'pass'
})
tt.end()
}
Rule.validate(context, {options: {subsystems: Rule.defaults.subsystems}})
})
t.end()
})