aboutsummaryrefslogtreecommitdiff
path: root/node_modules/tapable/lib/__tests__/MultiHook.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/tapable/lib/__tests__/MultiHook.js')
-rw-r--r--node_modules/tapable/lib/__tests__/MultiHook.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/node_modules/tapable/lib/__tests__/MultiHook.js b/node_modules/tapable/lib/__tests__/MultiHook.js
new file mode 100644
index 00000000..e23f2e46
--- /dev/null
+++ b/node_modules/tapable/lib/__tests__/MultiHook.js
@@ -0,0 +1,76 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+
+require("babel-polyfill");
+
+const MultiHook = require("../MultiHook");
+
+describe("MultiHook", () => {
+ const redirectedMethods = ["tap", "tapAsync", "tapPromise"];
+ for (const name of redirectedMethods) {
+ it(`should redirect ${name}`, () => {
+ const calls = [];
+ const fakeHook = {
+ [name]: (options, fn) => {
+ calls.push({ options, fn });
+ }
+ };
+ new MultiHook([fakeHook, fakeHook])[name]("options", "fn");
+ expect(calls).toEqual([
+ { options: "options", fn: "fn" },
+ { options: "options", fn: "fn" }
+ ]);
+ });
+ }
+ it("should redirect intercept", () => {
+ const calls = [];
+ const fakeHook = {
+ intercept: interceptor => {
+ calls.push(interceptor);
+ }
+ };
+ new MultiHook([fakeHook, fakeHook]).intercept("interceptor");
+ expect(calls).toEqual(["interceptor", "interceptor"]);
+ });
+ it("should redirect withOptions", () => {
+ const calls = [];
+ const fakeHook = {
+ withOptions: options => {
+ calls.push(options);
+ return {
+ tap: (options, fn) => {
+ calls.push({ options, fn });
+ }
+ };
+ }
+ };
+ const newHook = new MultiHook([fakeHook, fakeHook]).withOptions("options");
+ newHook.tap("options", "fn");
+ expect(calls).toEqual([
+ "options",
+ "options",
+ { options: "options", fn: "fn" },
+ { options: "options", fn: "fn" }
+ ]);
+ });
+ it("should redirect isUsed", () => {
+ const calls = [];
+ const fakeHook1 = {
+ isUsed: () => {
+ return true;
+ }
+ };
+ const fakeHook2 = {
+ isUsed: () => {
+ return false;
+ }
+ };
+ expect(new MultiHook([fakeHook1, fakeHook1]).isUsed()).toEqual(true);
+ expect(new MultiHook([fakeHook1, fakeHook2]).isUsed()).toEqual(true);
+ expect(new MultiHook([fakeHook2, fakeHook1]).isUsed()).toEqual(true);
+ expect(new MultiHook([fakeHook2, fakeHook2]).isUsed()).toEqual(false);
+ });
+});