mirror of
https://github.com/serverless/serverless.git
synced 2025-12-08 19:46:03 +00:00
59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
const chai = require('chai');
|
|
const sinon = require('sinon');
|
|
const BbPromise = require('bluebird');
|
|
const Plugin = require('./plugin');
|
|
const Serverless = require('../../Serverless');
|
|
const CLI = require('../../classes/CLI');
|
|
chai.use(require('chai-as-promised'));
|
|
const expect = require('chai').expect;
|
|
|
|
describe('Plugin', () => {
|
|
let plugin;
|
|
let serverless;
|
|
|
|
beforeEach(() => {
|
|
serverless = new Serverless();
|
|
serverless.cli = new CLI(serverless);
|
|
const options = {};
|
|
plugin = new Plugin(serverless, options);
|
|
});
|
|
|
|
describe('#constructor()', () => {
|
|
let generateCommandsHelpStub;
|
|
|
|
beforeEach(() => {
|
|
generateCommandsHelpStub = sinon
|
|
.stub(plugin.serverless.cli, 'generateCommandsHelp')
|
|
.returns(BbPromise.resolve());
|
|
});
|
|
|
|
afterEach(() => {
|
|
plugin.serverless.cli.generateCommandsHelp.restore();
|
|
});
|
|
|
|
it('should have the command "plugin"', () => {
|
|
expect(plugin.commands.plugin).to.not.equal(undefined);
|
|
});
|
|
|
|
it('should have the lifecycle event "plugin" for the "plugin" command', () => {
|
|
expect(plugin.commands.plugin.lifecycleEvents).to.deep.equal(['plugin']);
|
|
});
|
|
|
|
it('should have no option for the "plugin" command', () => {
|
|
// eslint-disable-next-line no-unused-expressions
|
|
expect(plugin.commands.options).to.equal(undefined);
|
|
});
|
|
|
|
it('should have a "plugin:plugin" hook', () => {
|
|
expect(plugin.hooks['plugin:plugin']).to.not.equal(undefined);
|
|
});
|
|
|
|
it('should run promise chain in order for "plugin:plugin" hook', () =>
|
|
expect(plugin.hooks['plugin:plugin']()).to.be.fulfilled.then(() => {
|
|
expect(generateCommandsHelpStub.calledOnce).to.equal(true);
|
|
}));
|
|
});
|
|
});
|