describe('validate-commit-msg.js', function() { var m = require('./validate-commit-msg'); var errors = []; var logs = []; var VALID = true; var INVALID = false; beforeEach(function() { errors.length = 0; logs.length = 0; spyOn(console, 'error').andCallFake(function(msg) { errors.push(msg.replace(/\x1B\[\d+m/g, '')); // uncolor }); spyOn(console, 'log').andCallFake(function(msg) { logs.push(msg.replace(/\x1B\[\d+m/g, '')); // uncolor }); }); describe('validateMessage', function() { it('should be valid', function() { expect(m.validateMessage('fixup! fix($compile): something')).toBe(VALID); expect(m.validateMessage('fix($compile): something')).toBe(VALID); expect(m.validateMessage('feat($location): something')).toBe(VALID); expect(m.validateMessage('docs($filter): something')).toBe(VALID); expect(m.validateMessage('style($http): something')).toBe(VALID); expect(m.validateMessage('refactor($httpBackend): something')).toBe(VALID); expect(m.validateMessage('test($resource): something')).toBe(VALID); expect(m.validateMessage('chore($controller): something')).toBe(VALID); expect(m.validateMessage('chore(foo-bar): something')).toBe(VALID); expect(m.validateMessage('chore(*): something')).toBe(VALID); expect(m.validateMessage('chore(guide/location): something')).toBe(VALID); expect(m.validateMessage('revert(foo): something')).toBe(VALID); expect(errors).toEqual([]); }); it('should validate 100 characters length', function() { var msg = "fix($compile): something super mega extra giga tera long, maybe even longer and longer and longer... "; expect(m.validateMessage(msg)).toBe(INVALID); expect(errors).toEqual(['INVALID COMMIT MSG: is longer than 100 characters !']); }); it('should validate "(): " format', function() { var msg = 'not correct format'; expect(m.validateMessage(msg)).toBe(INVALID); expect(errors).toEqual(['INVALID COMMIT MSG: does not match "(): " ! was: not correct format']); }); it('should validate type', function() { expect(m.validateMessage('weird($filter): something')).toBe(INVALID); expect(errors).toEqual(['INVALID COMMIT MSG: "weird" is not allowed type !']); }); it('should allow empty scope', function() { expect(m.validateMessage('fix: blablabla')).toBe(VALID); }); it('should allow dot in scope', function() { expect(m.validateMessage('chore(mocks.$httpBackend): something')).toBe(VALID); }); it('should ignore msg prefixed with "WIP: "', function() { expect(m.validateMessage('WIP: bullshit')).toBe(VALID); }); }); }); a2165cae8358b52ad80c8b77313a38 (plain)
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