mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-10 04:22:12 +00:00
[@now/build-utils] Add support for includeFiles and excludeFiles to Functions (#3285)
Add support for `includeFiles` and `excludeFiles` to Functions. [PRODUCT-27] [PRODUCT-27]: https://zeit.atlassian.net/browse/PRODUCT-27
This commit is contained in:
79
packages/now-build-utils/test/unit.test.js
vendored
79
packages/now-build-utils/test/unit.test.js
vendored
@@ -634,6 +634,85 @@ describe('Test `detectBuilders`', () => {
|
||||
expect(errors).toBeDefined();
|
||||
expect(errors[0].code).toBe('invalid_function_runtime');
|
||||
});
|
||||
|
||||
it('Must include includeFiles config property', async () => {
|
||||
const functions = {
|
||||
'api/test.js': { includeFiles: 'text/include.txt' }
|
||||
}
|
||||
const files = ['api/test.js'];
|
||||
|
||||
const { builders, errors } = await detectBuilders(files, null, { functions });
|
||||
|
||||
expect(errors).toBe(null);
|
||||
expect(builders).not.toBe(null);
|
||||
expect(builders[0].use).toBe('@now/node');
|
||||
expect(builders[0].config).toMatchObject({
|
||||
functions,
|
||||
zeroConfig: true,
|
||||
includeFiles: 'text/include.txt'
|
||||
});
|
||||
});
|
||||
|
||||
it('Must include excludeFiles config property', async () => {
|
||||
const functions = {
|
||||
'api/test.js': { excludeFiles: 'text/exclude.txt' }
|
||||
}
|
||||
const files = ['api/test.js'];
|
||||
|
||||
const { builders, errors } = await detectBuilders(files, null, { functions });
|
||||
|
||||
expect(errors).toBe(null);
|
||||
expect(builders).not.toBe(null);
|
||||
expect(builders[0].use).toBe('@now/node');
|
||||
expect(builders[0].config).toMatchObject({
|
||||
functions,
|
||||
zeroConfig: true,
|
||||
excludeFiles: 'text/exclude.txt'
|
||||
});
|
||||
});
|
||||
|
||||
it('Must include excludeFiles and includeFiles config property', async () => {
|
||||
const functions = {
|
||||
'api/test.js': { excludeFiles: 'text/exclude.txt', includeFiles: 'text/include.txt' }
|
||||
}
|
||||
const files = ['api/test.js'];
|
||||
|
||||
const { builders, errors } = await detectBuilders(files, null, { functions });
|
||||
|
||||
expect(errors).toBe(null);
|
||||
expect(builders).not.toBe(null);
|
||||
expect(builders[0].use).toBe('@now/node');
|
||||
expect(builders[0].config).toMatchObject({
|
||||
functions,
|
||||
zeroConfig: true,
|
||||
excludeFiles: 'text/exclude.txt',
|
||||
includeFiles: 'text/include.txt'
|
||||
});
|
||||
});
|
||||
|
||||
it('Must fail for includeFiles config property', async () => {
|
||||
const functions = {
|
||||
'api/test.js': { includeFiles: { test: 1 } }
|
||||
}
|
||||
const files = ['api/test.js'];
|
||||
|
||||
const { errors } = await detectBuilders(files, null, { functions });
|
||||
|
||||
expect(errors).not.toBe(null);
|
||||
expect(errors[0].code).toBe('invalid_function_property');
|
||||
});
|
||||
|
||||
it('Must fail for excludeFiles config property', async () => {
|
||||
const functions = {
|
||||
'api/test.js': { excludeFiles: { test: 1 } }
|
||||
}
|
||||
const files = ['api/test.js'];
|
||||
|
||||
const { errors } = await detectBuilders(files, null, { functions });
|
||||
|
||||
expect(errors).not.toBe(null);
|
||||
expect(errors[0].code).toBe('invalid_function_property');
|
||||
});
|
||||
});
|
||||
|
||||
it('Test `detectRoutes`', async () => {
|
||||
|
||||
Reference in New Issue
Block a user