forked from netlify/cli
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathget-functions.test.js
More file actions
77 lines (67 loc) · 2.23 KB
/
Copy pathget-functions.test.js
File metadata and controls
77 lines (67 loc) · 2.23 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
77
const path = require('path')
const test = require('ava')
const { withSiteBuilder } = require('../../tests/utils/site-builder')
const { getFunctions } = require('./get-functions.js')
test('should return empty object when an empty string is provided', async (t) => {
const funcs = await getFunctions('')
t.deepEqual(funcs, [])
})
test('should return an empty object for a directory with no js files', async (t) => {
await withSiteBuilder('site-without-functions', async (builder) => {
await builder.buildAsync()
const funcs = await getFunctions(builder.directory)
t.deepEqual(funcs, [])
})
})
test('should return object with function details for a directory with js files', async (t) => {
await withSiteBuilder('site-without-functions', async (builder) => {
builder.withFunction({
path: 'index.js',
handler: '',
})
await builder.buildAsync()
const functions = path.join(builder.directory, 'functions')
const funcs = await getFunctions(functions)
t.deepEqual(funcs, [
{
name: 'index',
mainFile: path.join(builder.directory, 'functions', 'index.js'),
isBackground: false,
runtime: 'js',
urlPath: '/.netlify/functions/index',
},
])
})
})
test('should mark background functions based on filenames', async (t) => {
await withSiteBuilder('site-without-functions', async (builder) => {
builder
.withFunction({
path: 'foo-background.js',
handler: '',
})
.withFunction({
path: 'bar-background/bar-background.js',
handler: '',
})
await builder.buildAsync()
const functions = path.join(builder.directory, 'functions')
const funcs = await getFunctions(functions)
t.deepEqual(funcs, [
{
name: 'bar-background',
mainFile: path.join(builder.directory, 'functions', 'bar-background', 'bar-background.js'),
isBackground: true,
runtime: 'js',
urlPath: '/.netlify/functions/bar-background',
},
{
name: 'foo-background',
mainFile: path.join(builder.directory, 'functions', 'foo-background.js'),
isBackground: true,
runtime: 'js',
urlPath: '/.netlify/functions/foo-background',
},
])
})
})