mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
67 lines
2.6 KiB
JavaScript
67 lines
2.6 KiB
JavaScript
'use strict';
|
|
|
|
const { expect } = require('chai');
|
|
|
|
const overrideArgv = require('process-utils/override-argv');
|
|
const overrideStdoutWrite = require('process-utils/override-stdout-write');
|
|
const ServerlessError = require('../../../../../lib/serverless-error');
|
|
const resolveCliInput = require('../../../../../lib/cli/resolve-input');
|
|
const resolveMeta = require('../../../../../lib/configuration/variables/resolve-meta');
|
|
const eventuallyReportResolutionErrors = require('../../../../../lib/configuration/variables/eventually-report-resolution-errors');
|
|
|
|
describe('test/unit/lib/configuration/variables/eventually-report-resolution-errors.test.js', () => {
|
|
beforeEach(() => {
|
|
resolveCliInput.clear();
|
|
});
|
|
it('should return "false" on no errors', () => {
|
|
const configuration = { foo: 'bar' };
|
|
const variablesMeta = resolveMeta(configuration);
|
|
|
|
expect(eventuallyReportResolutionErrors(process.cwd(), configuration, variablesMeta)).to.equal(
|
|
false
|
|
);
|
|
});
|
|
|
|
describe('On errors', () => {
|
|
it('should log errors with help command', () => {
|
|
const configuration = { foo: '${foo:raz' };
|
|
const variablesMeta = resolveMeta(configuration);
|
|
let stdoutData = '';
|
|
overrideArgv({ args: ['serverless', '--help'] }, () =>
|
|
overrideStdoutWrite(
|
|
(data) => (stdoutData += data),
|
|
() =>
|
|
expect(
|
|
eventuallyReportResolutionErrors(process.cwd(), configuration, variablesMeta)
|
|
).to.equal(true)
|
|
)
|
|
);
|
|
|
|
expect(stdoutData).to.include('Resolution of service configuration failed');
|
|
});
|
|
|
|
it('should log deprecation with no "variablesResolutionMode" set', () => {
|
|
const configuration = { foo: '${foo:raz' };
|
|
const variablesMeta = resolveMeta(configuration);
|
|
overrideArgv(
|
|
{ args: ['serverless', 'foo'] },
|
|
() => () =>
|
|
expect(() =>
|
|
eventuallyReportResolutionErrors(process.cwd(), configuration, variablesMeta)
|
|
)
|
|
.to.throw(ServerlessError)
|
|
.with.property('code', 'REJECTED_DEPRECATION_VARIABLES_RESOLUTION_ERROR')
|
|
);
|
|
});
|
|
it('should throw with no "variablesResolutionMode" set', () => {
|
|
const configuration = { foo: '${foo:raz', variablesResolutionMode: 20210326 };
|
|
const variablesMeta = resolveMeta(configuration);
|
|
overrideArgv({ args: ['serverless', 'foo'] }, () =>
|
|
expect(() => eventuallyReportResolutionErrors(process.cwd(), configuration, variablesMeta))
|
|
.to.throw(ServerlessError)
|
|
.with.property('code', 'VARIABLES_RESOLUTION_ERROR')
|
|
);
|
|
});
|
|
});
|
|
});
|