2022-01-27 15:21:58 +01:00

65 lines
2.1 KiB
JavaScript

'use strict';
const { expect } = require('chai');
const overrideArgv = require('process-utils/override-argv');
const resolveInput = require('../../../../../lib/cli/resolve-input');
const renderHelp = require('../../../../../lib/cli/render-help');
const observeOutput = require('@serverless/test/observe-output');
describe('test/unit/lib/cli/render-help/index.test.js', () => {
it('should show general help on main command', async () => {
resolveInput.clear();
overrideArgv(
{
args: ['serverless', '--help'],
},
() => resolveInput()
);
const output = await observeOutput(() => renderHelp(new Set()));
expect(output).to.have.string('Usage');
expect(output).to.have.string('deploy function');
});
it('should show interactive help when requested', async () => {
resolveInput.clear();
overrideArgv(
{
args: ['serverless', '--help-interactive'],
},
() => resolveInput()
);
const output = await observeOutput(() => renderHelp(new Set()));
expect(output).to.have.string('Interactive CLI');
expect(output).to.have.string('--help-interactive');
});
it('should show general help on help command', async () => {
resolveInput.clear();
overrideArgv(
{
args: ['serverless', 'help'],
},
() => resolveInput()
);
const output = await observeOutput(() => renderHelp(new Set()));
expect(output).to.have.string('Usage');
expect(output).to.have.string('deploy function');
});
it('should show specific commmand help with specific command', async () => {
resolveInput.clear();
const { commandsSchema } = overrideArgv(
{
args: ['serverless', 'deploy', '--help'],
},
() => resolveInput()
);
const output = await observeOutput(() => renderHelp(new Set()));
expect(output).to.have.string('deploy');
expect(output).to.have.string('deploy function');
expect(output).to.have.string('--help');
expect(output).to.have.string(commandsSchema.get('deploy').usage);
expect(output).to.have.string(commandsSchema.get('deploy function').usage);
});
});