forked from angular/angular.js
- Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathvalidate-commit-msg.spec.js
More file actions
Latest commit
76 lines (56 loc) · 2.57 KB
/
Copy pathvalidate-commit-msg.spec.js
File metadata and controls
76 lines (56 loc) · 2.57 KB
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
describe('validate-commit-msg.js',function(){
varm=require('./validate-commit-msg');
varerrors=[];
varlogs=[];
varVALID=true;
varINVALID=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('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(errors).toEqual([]);
});
it('should validate 70 characters length',function(){
varmsg='fix($compile): something super mega extra giga tera long, maybe even longer... '+
'way over 80 characters';
expect(m.validateMessage(msg)).toBe(INVALID);
expect(errors).toEqual(['INVALID COMMIT MSG: is longer than 70 characters !']);
});
it('should validate "<type>(<scope>): <subject>" format',function(){
varmsg='not correct format';
expect(m.validateMessage(msg)).toBe(INVALID);
expect(errors).toEqual(['INVALID COMMIT MSG: does not match "<type>(<scope>): <subject>" !']);
});
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);
});
});
});