-
Notifications
You must be signed in to change notification settings - Fork 230
/
Copy pathindex.functions.test.ts
110 lines (102 loc) · 2.69 KB
/
index.functions.test.ts
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
import TypeScriptPlugin from '../src'
const createInstance = (functions: Serverless.FunctionMap, globalRuntime?: string): Serverless.Instance => ({
cli: {
log: jest.fn()
},
config: {
servicePath: 'servicePath'
},
service: {
provider: {
name: 'aws',
runtime: globalRuntime
},
package: {
individually: true,
include: [],
exclude: []
},
functions,
getAllFunctions: jest.fn()
},
pluginManager: {
spawn: jest.fn()
}
})
describe('functions', () => {
const functions: Serverless.FunctionMap = {
hello: {
handler: 'tests/assets/hello.handler',
package: {
include: [],
exclude: []
}
},
world: {
handler: 'tests/assets/world.handler',
runtime: 'nodejs12.x',
package: {
include: [],
exclude: []
},
},
js: {
handler: 'tests/assets/jsfile.create',
package: {
include: [],
exclude: []
}
},
notActuallyTypescript: {
handler: 'tests/assets/jsfile.create',
package: {
include: [],
exclude: []
},
runtime: 'go1.x'
},
}
describe('when the provider runtime is Node', () => {
it('can get filter out non node based functions', () => {
const slsInstance = createInstance(functions, 'nodejs10.x')
const plugin = new TypeScriptPlugin(slsInstance, {})
expect(
Object.values(plugin.functions).map(fn => fn.handler),
).toEqual(
[
'tests/assets/hello.handler',
'tests/assets/world.handler',
'tests/assets/jsfile.create',
],
)
})
})
describe('when the provider runtime is not Node', () => {
it('can get filter out non node based functions', () => {
const slsInstance = createInstance(functions, 'python2.7')
const plugin = new TypeScriptPlugin(slsInstance, {})
expect(
Object.values(plugin.functions).map(fn => fn.handler),
).toEqual(
[
'tests/assets/world.handler',
],
)
})
})
describe('when the provider runtime is undefined', () => {
it('can get filter out non node based functions', () => {
const slsInstance = createInstance(functions)
const plugin = new TypeScriptPlugin(slsInstance, {})
expect(
Object.values(plugin.functions).map(fn => fn.handler),
).toEqual(
[
'tests/assets/hello.handler',
'tests/assets/world.handler',
'tests/assets/jsfile.create',
],
)
})
})
})