mirror of
https://github.com/serverless/serverless.git
synced 2026-01-25 15:07:39 +00:00
The tests are passing!!!
This commit is contained in:
parent
059d690cdc
commit
c8b6de516f
@ -25,18 +25,21 @@ class Print {
|
||||
print() {
|
||||
this.serverless.variables.options = this.serverless.processedInput.options;
|
||||
this.serverless.variables.loadVariableSyntax();
|
||||
getServerlessConfigFile(process.cwd())
|
||||
return getServerlessConfigFile(process.cwd())
|
||||
.then((data) => {
|
||||
const conf = data;
|
||||
// Need to delete variableSyntax to avoid potential matching errors
|
||||
if (conf.provider.variableSyntax) {
|
||||
delete conf.provider.variableSyntax;
|
||||
}
|
||||
return this.serverless.variables.populateObject(conf);
|
||||
}).then((data) => this.serverless.cli.consoleLog(YAML.dump(data)));
|
||||
|
||||
return BbPromise.resolve();
|
||||
return conf;
|
||||
})
|
||||
.then((data) => {
|
||||
return this.serverless.variables.populateObject(data).then(() => { return data; })
|
||||
})
|
||||
.then((data) => this.serverless.cli.consoleLog(YAML.dump(data)));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Print;
|
||||
|
||||
@ -4,6 +4,7 @@ const expect = require('chai').expect;
|
||||
const sinon = require('sinon');
|
||||
const proxyquire = require('proxyquire');
|
||||
const Serverless = require('../../Serverless');
|
||||
const AwsProvider = require('../aws/provider/awsProvider');
|
||||
const CLI = require('../../classes/CLI');
|
||||
const YAML = require('js-yaml');
|
||||
|
||||
@ -12,13 +13,9 @@ describe('Print', () => {
|
||||
let print;
|
||||
let serverless;
|
||||
let getServerlessConfigFileStub;
|
||||
let consoleLogSpy;
|
||||
let sandbox;
|
||||
|
||||
beforeEach(() => {
|
||||
sandbox = sinon.sandbox.create();
|
||||
consoleLogSpy = sandbox.spy(console, 'log');
|
||||
getServerlessConfigFileStub = sandbox.stub();
|
||||
getServerlessConfigFileStub = sinon.stub();
|
||||
const printPlugin = proxyquire('./print.js', {
|
||||
'../../utils/getServerlessConfigFile': getServerlessConfigFileStub,
|
||||
});
|
||||
@ -29,11 +26,15 @@ describe('Print', () => {
|
||||
}
|
||||
serverless.cli = new CLI(serverless);
|
||||
print = new printPlugin(serverless);
|
||||
print.serverless.cli = {
|
||||
consoleLog: sinon.spy(),
|
||||
};
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
consoleLogSpy.restore();
|
||||
})
|
||||
//print.serverless.cli.consoleLog.restore();
|
||||
serverless.service.provider.variableSyntax = '\\${([ ~:a-zA-Z0-9._\'",\\-\\/\\(\\)]+?)}'
|
||||
});
|
||||
|
||||
it('should print standard config', () => {
|
||||
const conf = {
|
||||
@ -44,13 +45,117 @@ describe('Print', () => {
|
||||
}
|
||||
getServerlessConfigFileStub.resolves(conf)
|
||||
|
||||
print.print().then(() => {
|
||||
const message = consoleLogSpy.args.join();
|
||||
return print.print().then(() => {
|
||||
const message = print.serverless.cli.consoleLog.args.join();
|
||||
|
||||
expect(getServerlessConfigFileStub.calledOnce).to.equal(true);
|
||||
expect(console.log.calledOnce).to.equal(true);
|
||||
expect(print.serverless.cli.consoleLog.called).to.be.equal(true);
|
||||
expect(message).to.have.string(YAML.dump(conf));
|
||||
})
|
||||
});
|
||||
|
||||
it('should resolve command line variables', () => {
|
||||
const conf = {
|
||||
service: 'my-service',
|
||||
provider: {
|
||||
name: 'aws',
|
||||
stage: '${opt:stage}'
|
||||
}
|
||||
}
|
||||
getServerlessConfigFileStub.resolves(conf)
|
||||
|
||||
serverless.processedInput = {
|
||||
commands: [ 'print' ],
|
||||
options: { stage: 'dev', region: undefined }
|
||||
}
|
||||
|
||||
const expected = {
|
||||
service: 'my-service',
|
||||
provider: {
|
||||
name: 'aws',
|
||||
stage: 'dev'
|
||||
}
|
||||
}
|
||||
|
||||
return print.print().then(() => {
|
||||
const message = print.serverless.cli.consoleLog.args.join();
|
||||
|
||||
expect(getServerlessConfigFileStub.calledOnce).to.equal(true);
|
||||
expect(print.serverless.cli.consoleLog.called).to.be.equal(true);
|
||||
expect(message).to.equal(YAML.dump(expected));
|
||||
})
|
||||
});
|
||||
|
||||
it('should resolve using custom variable syntax', () => {
|
||||
const conf = {
|
||||
service: 'my-service',
|
||||
provider: {
|
||||
name: 'aws',
|
||||
stage: '${{opt:stage}}'
|
||||
}
|
||||
}
|
||||
serverless.service.provider.variableSyntax = "\\${{([ ~:a-zA-Z0-9._\\'\",\\-\\/\\(\\)]+?)}}";
|
||||
getServerlessConfigFileStub.resolves(conf);
|
||||
|
||||
serverless.processedInput = {
|
||||
commands: [ 'print' ],
|
||||
options: { stage: 'dev', region: undefined }
|
||||
}
|
||||
|
||||
const expected = {
|
||||
service: 'my-service',
|
||||
provider: {
|
||||
name: 'aws',
|
||||
stage: 'dev'
|
||||
}
|
||||
}
|
||||
|
||||
return print.print().then(() => {
|
||||
const message = print.serverless.cli.consoleLog.args.join();
|
||||
|
||||
expect(getServerlessConfigFileStub.calledOnce).to.equal(true);
|
||||
expect(print.serverless.cli.consoleLog.called).to.be.equal(true);
|
||||
expect(message).to.equal(YAML.dump(expected));
|
||||
})
|
||||
});
|
||||
|
||||
it('should resolve custom variables', () => {
|
||||
const conf = {
|
||||
service: 'my-service',
|
||||
custom: { region: 'us-east-1' },
|
||||
provider: {
|
||||
name: 'aws',
|
||||
stage: '${opt:stage}',
|
||||
region: '${self:custom.region}'
|
||||
}
|
||||
}
|
||||
getServerlessConfigFileStub.resolves(conf)
|
||||
|
||||
serverless.processedInput = {
|
||||
commands: [ 'print' ],
|
||||
options: { stage: 'dev', region: undefined }
|
||||
}
|
||||
serverless.service.custom = { region: 'us-east-1' }
|
||||
|
||||
const expected = {
|
||||
service: 'my-service',
|
||||
custom: {
|
||||
region: 'us-east-1',
|
||||
},
|
||||
provider: {
|
||||
name: 'aws',
|
||||
stage: 'dev',
|
||||
region: 'us-east-1'
|
||||
}
|
||||
}
|
||||
|
||||
return print.print().then(() => {
|
||||
const message = print.serverless.cli.consoleLog.args.join();
|
||||
|
||||
expect(getServerlessConfigFileStub.calledOnce).to.equal(true);
|
||||
expect(print.serverless.cli.consoleLog.called).to.be.equal(true);
|
||||
expect(message).to.equal(YAML.dump(expected));
|
||||
})
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user