From bd8f03030000a6f04dfffa34008f57749337ea30 Mon Sep 17 00:00:00 2001 From: Sam Harrison Date: Fri, 5 Jun 2020 14:03:45 -0500 Subject: [PATCH] fix: move the plugin-install hook handler out of the init folder The init folder is for init hook handlers. --- package.json | 2 +- src/hooks/{init => }/plugin-install.js | 0 test/hooks/init/plugin-install.test.js | 63 -------------------------- test/hooks/plugin-install.test.js | 61 +++++++++++++++++++++++++ 4 files changed, 62 insertions(+), 64 deletions(-) rename src/hooks/{init => }/plugin-install.js (100%) delete mode 100644 test/hooks/init/plugin-install.test.js create mode 100644 test/hooks/plugin-install.test.js diff --git a/package.json b/package.json index b5d0183e4..676472338 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "./src/hooks/init/plugin-verification" ], "plugins:preinstall": [ - "./src/hooks/init/plugin-install" + "./src/hooks/plugin-install" ] }, "macos": { diff --git a/src/hooks/init/plugin-install.js b/src/hooks/plugin-install.js similarity index 100% rename from src/hooks/init/plugin-install.js rename to src/hooks/plugin-install.js diff --git a/test/hooks/init/plugin-install.test.js b/test/hooks/init/plugin-install.test.js deleted file mode 100644 index 506159765..000000000 --- a/test/hooks/init/plugin-install.test.js +++ /dev/null @@ -1,63 +0,0 @@ -const sinon = require('sinon'); -const inquirer = require('inquirer'); -const pluginFunc = require('../../../src/hooks/init/plugin-install'); -const { expect, test } = require('@twilio/cli-test'); - -const getNonTwilioPlugin = () => ({ - plugin: { - name: '@twilio-labs-h4x0r/plugin-serverless' - } -}); - -const getTwilioPlugin = () => ({ - plugin: { - name: '@twilio/debugger' - } -}); - -const getTwilioLabsPlugin = () => ({ - plugin: { - name: '@twilio-labs/debugger' - } -}); - -const getUndefinedPlugin = () => ({ - plugin: { - name: undefined - } -}); - -describe('hooks', () => { - describe('init', () => { - describe('plugin-install', () => { - before(() => { - inquirer._prompt = inquirer.prompt; - inquirer.prompt = sinon.stub().resolves({ continue: false }); - }); - - after(() => { - inquirer.prompt = inquirer._prompt; - delete inquirer._prompt; - }); - - test.stderr().it('warning when non Twilio plugin is installed', async ctx => { - ctx.exit = sinon.stub().resolves(1); - await pluginFunc.call(ctx, getNonTwilioPlugin()); - expect(ctx.stderr).to.contain('WARNING'); - }); - - test.stderr().it('warning when plugin is undefined', async ctx => { - ctx.exit = sinon.stub().resolves(1); - await pluginFunc.call(ctx, getUndefinedPlugin()); - expect(ctx.stderr).to.contain('WARNING'); - }); - - test.stderr().it('outputs nothing when Twilio plugin is installed', async ctx => { - await pluginFunc.call(ctx, getTwilioPlugin()); - expect(ctx.stderr).to.be.empty; - await pluginFunc.call(ctx, getTwilioLabsPlugin()); - expect(ctx.stderr).to.be.empty; - }); - }); - }); -}); diff --git a/test/hooks/plugin-install.test.js b/test/hooks/plugin-install.test.js new file mode 100644 index 000000000..55dc3f655 --- /dev/null +++ b/test/hooks/plugin-install.test.js @@ -0,0 +1,61 @@ +const sinon = require('sinon'); +const inquirer = require('inquirer'); +const pluginFunc = require('../../src/hooks/plugin-install'); +const { expect, test } = require('@twilio/cli-test'); + +const getNonTwilioPlugin = () => ({ + plugin: { + name: '@twilio-labs-h4x0r/plugin-serverless' + } +}); + +const getTwilioPlugin = () => ({ + plugin: { + name: '@twilio/debugger' + } +}); + +const getTwilioLabsPlugin = () => ({ + plugin: { + name: '@twilio-labs/debugger' + } +}); + +const getUndefinedPlugin = () => ({ + plugin: { + name: undefined + } +}); + +describe('hooks', () => { + describe('plugin-install', () => { + before(() => { + inquirer._prompt = inquirer.prompt; + inquirer.prompt = sinon.stub().resolves({ continue: false }); + }); + + after(() => { + inquirer.prompt = inquirer._prompt; + delete inquirer._prompt; + }); + + test.stderr().it('warning when non Twilio plugin is installed', async ctx => { + ctx.exit = sinon.stub().resolves(1); + await pluginFunc.call(ctx, getNonTwilioPlugin()); + expect(ctx.stderr).to.contain('WARNING'); + }); + + test.stderr().it('warning when plugin is undefined', async ctx => { + ctx.exit = sinon.stub().resolves(1); + await pluginFunc.call(ctx, getUndefinedPlugin()); + expect(ctx.stderr).to.contain('WARNING'); + }); + + test.stderr().it('outputs nothing when Twilio plugin is installed', async ctx => { + await pluginFunc.call(ctx, getTwilioPlugin()); + expect(ctx.stderr).to.be.empty; + await pluginFunc.call(ctx, getTwilioLabsPlugin()); + expect(ctx.stderr).to.be.empty; + }); + }); +});