forked from martysweet/cfn-lint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathresourcesTest.js
123 lines (91 loc) · 4.22 KB
/
resourcesTest.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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
const chai = require('chai');
const expect = chai.expect;
const assert = chai.assert;
const resourceSpec = require('../src/resourcesSpec');
describe('resourceSpec', () =>{
describe('getType', () => {
it('should return a resource type', () => {
let result = resourceSpec.getType("AWS::Lambda::Function");
expect(result).to.not.equal(null);
});
it('should return a property type', () => {
let result = resourceSpec.getType("AWS::Lambda::Function.Code");
expect(result).to.not.equal(null);
});
it('should return null for invalid type', () => {
let result = resourceSpec.getType("AWS::Lambda::InvalidFunction");
expect(result).to.equal(null);
});
});
describe('isValidProperty', () => {
it('should return True for AWS::Lambda::Function > Code', () => {
let result = resourceSpec.isValidProperty("AWS::Lambda::Function", "Code");
expect(result).to.equal(true);
});
it('should return False for AWS::Lambda::Function > MyCode', () => {
let result = resourceSpec.isValidProperty("AWS::Lambda::Function", "MyCode");
expect(result).to.equal(false);
});
it('should return False for AWS::Lambda::InvalidFunction > Code', () => {
let result = resourceSpec.isValidProperty("AWS::Lambda::InvalidFunction", "Code");
expect(result).to.equal(false);
});
});
describe('isRequiredProperty', () => {
it('should return True for AWS::IAM::User.Policy > PolicyName', () => {
let result = resourceSpec.isRequiredProperty("AWS::IAM::User.Policy", "PolicyName");
expect(result).to.equal(true);
});
it('should return True for AWS::Lambda::Function > Code', () => {
let result = resourceSpec.isRequiredProperty("AWS::Lambda::Function", "Code");
expect(result).to.equal(true);
});
it('should return False for AWS::Lambda::Function > Description', () => {
let result = resourceSpec.isRequiredProperty("AWS::Lambda::Function", "Description");
expect(result).to.equal(false);
});
it('should return False for AWS::Lambda::InvalidFunction > Description', () => {
let result = resourceSpec.isRequiredProperty("AWS::Lambda::InvalidFunction", "Description");
expect(result).to.equal(false);
});
});
describe('isSinglePrimitivePropertyType', () => {
it('should return True for AWS::Lambda::Function > Description', () => {
let result = resourceSpec.isPrimitiveProperty("AWS::Lambda::Function", "Description");
expect(result).to.equal(true);
});
it('should return False for AWS::Lambda::Function > Code', () => {
let result = resourceSpec.isPrimitiveProperty("AWS::Lambda::Function", "Code");
expect(result).to.equal(false);
});
it('should return False for AWS::Lambda::InvalidFunction > Code', () => {
let result = resourceSpec.isPrimitiveProperty("AWS::Lambda::InvalidFunction", "Code");
expect(result).to.equal(false);
});
});
describe('isArnProperty', () => {
it('should return True for KmsKeyArn', () => {
let result = resourceSpec.isArnProperty("KmsKeyArn");
expect(result).to.equal(true);
});
// TODO: Check for ARNs
it('should return True for TopicArn', () => {
let result = resourceSpec.isArnProperty("TopicArn");
expect(result).to.equal(true);
});
it('should return False for Code', () => {
let result = resourceSpec.isArnProperty("Code");
expect(result).to.equal(false);
});
});
describe('getRefOverride', () => {
it('should return "arn" for AWS::ECS::Service', () => {
let result = resourceSpec.getRefOverride("AWS::ECS::Service");
expect(result).to.equal("arn");
});
it('should return null for AWS::Lambda::Function', () => {
let result = resourceSpec.getRefOverride("AWS::Lambda::Function");
expect(result).to.equal(null);
});
});
});