Skip to content

Commit 64dc865

Browse files
authored
fix(compat): function level entry override (#1226)
* better null check * chore: cover regression in e2e test
1 parent 8e54d47 commit 64dc865

File tree

2 files changed

+18
-13
lines changed

2 files changed

+18
-13
lines changed

lib/extendServerless.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
const _ = require('lodash');
22

33
const extendFunctionProperties = serverless => {
4-
if (_.isFunction(serverless.configSchemaHandler.defineFunctionProperties)) {
5-
serverless.configSchemaHandler.defineFunctionProperties('aws', {
6-
properties: {
7-
entrypoint: { type: 'string' }
8-
}
9-
});
10-
}
4+
_.invoke(serverless, 'configSchemaHandler.defineFunctionProperties', 'aws', {
5+
properties: {
6+
entrypoint: { type: 'string' }
7+
}
8+
});
119
};
1210

1311
module.exports = {

tests/index.test.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
const _ = require('lodash');
77
const BbPromise = require('bluebird');
8+
const semver = require('semver');
89
const Serverless = require('serverless');
910
const ServerlessWebpack = require('../index');
1011

@@ -23,7 +24,9 @@ describe('ServerlessWebpack', () => {
2324
};
2425
serverless.pluginManager.spawn = jest.fn().mockReturnValue(BbPromise.resolve());
2526
serverless.service.getFunction = jest.fn().mockReturnValue({ runtime: 'nodejs12.x' });
26-
serverless.configSchemaHandler.defineFunctionProperties = jest.fn();
27+
if (semver.gte(serverless.getVersion(), '2.10.0')) {
28+
serverless.configSchemaHandler.defineFunctionProperties = jest.fn();
29+
}
2730
});
2831

2932
it('should expose a lib object', () => {
@@ -33,11 +36,15 @@ describe('ServerlessWebpack', () => {
3336

3437
it('should extend serverless', () => {
3538
new ServerlessWebpack(serverless, {});
36-
expect(serverless.configSchemaHandler.defineFunctionProperties).toHaveBeenCalledWith('aws', {
37-
properties: {
38-
entrypoint: { type: 'string' }
39-
}
40-
});
39+
if (semver.gte(serverless.getVersion(), '2.10.0')) {
40+
expect(serverless.configSchemaHandler.defineFunctionProperties).toHaveBeenCalledWith('aws', {
41+
properties: {
42+
entrypoint: { type: 'string' }
43+
}
44+
});
45+
} else {
46+
expect(serverless.configSchemaHandler.defineFunctionProperties).toBeUndefined();
47+
}
4148
});
4249

4350
describe('with a TS webpack configuration', () => {

0 commit comments

Comments
 (0)