diff --git a/lib/classes/Service.js b/lib/classes/Service.js index 69136a9bf..952d3a345 100644 --- a/lib/classes/Service.js +++ b/lib/classes/Service.js @@ -58,9 +58,6 @@ class Service { if (!serverlessFile.provider) { throw new SError('"provider" property is missing in serverless.yml'); } - if (!serverlessFile.functions) { - throw new SError('"functions" property is missing in serverless.yml'); - } if (typeof serverlessFile.provider !== 'object') { const providerName = serverlessFile.provider; @@ -84,7 +81,7 @@ class Service { that.custom = serverlessFile.custom; that.plugins = serverlessFile.plugins; that.resources = serverlessFile.resources; - that.functions = serverlessFile.functions; + that.functions = serverlessFile.functions || {}; if (serverlessFile.package) { that.package.individually = serverlessFile.package.individually; diff --git a/lib/classes/Service.test.js b/lib/classes/Service.test.js index 0c3d9fc20..088aad7ef 100644 --- a/lib/classes/Service.test.js +++ b/lib/classes/Service.test.js @@ -334,7 +334,7 @@ describe('Service', () => { }); }); - it('should throw error if functions property is missing', () => { + it('should not throw error if functions property is missing', () => { const SUtils = new Utils(); const serverlessYml = { service: 'service-name', @@ -347,11 +347,7 @@ describe('Service', () => { serviceInstance = new Service(serverless); return serviceInstance.load().then(() => { - // if we reach this, then no error was thrown as expected - // so make assertion fail intentionally to let us know something is wrong - expect(1).to.equal(2); - }).catch(e => { - expect(e.name).to.be.equal('ServerlessError'); + expect(serverless.service.functions).to.deep.equal({}); }); });