react-monaco-editor
Version:
Monaco Editor for React
56 lines (45 loc) • 1.1 kB
JavaScript
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
;
const SyncHook = require("../SyncHook");
describe("Hook", () => {
it("should allow to insert hooks before others and in stages", () => {
const hook = new SyncHook();
const calls = [];
hook.tap("A", () => calls.push("A"));
hook.tap({
name: "B",
before: "A"
}, () => calls.push("B"));
calls.length = 0;
hook.call();
expect(calls).toEqual(["B", "A"]);
hook.tap({
name: "C",
before: ["A", "B"]
}, () => calls.push("C"));
calls.length = 0;
hook.call();
expect(calls).toEqual(["C", "B", "A"]);
hook.tap({
name: "D",
before: "B"
}, () => calls.push("D"));
calls.length = 0;
hook.call();
expect(calls).toEqual(["C", "D", "B", "A"]);
hook.tap({
name: "E",
stage: -5
}, () => calls.push("E"));
hook.tap({
name: "F",
stage: -3
}, () => calls.push("F"));
calls.length = 0;
hook.call();
expect(calls).toEqual(["E", "F", "C", "D", "B", "A"]);
});
});