68 lines
2.4 KiB
TypeScript
68 lines
2.4 KiB
TypeScript
import { assert } from "chai";
|
|
import { describe, it } from "mocha";
|
|
import { availablePlugins } from "./index";
|
|
import { allPlugins, installPlugins, plugin } from "./plugin";
|
|
|
|
describe("PluginSystem", function () {
|
|
// Describe the required Test:
|
|
|
|
it("List Plugins", function () {
|
|
assert(allPlugins().length == 2, "There Should be to Plugins");
|
|
});
|
|
describe("load single Plugins", function () {
|
|
it("by-name", function () {
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
const nope = require("../index.nodejs");
|
|
installPlugins(nope, "hello", false);
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
});
|
|
it("by-path", function () {
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
const nope = require("../index.nodejs");
|
|
installPlugins(nope, "plugins.availablePlugins.hello", false);
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
});
|
|
it("by-plugin", function () {
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
const nope = require("../index.nodejs");
|
|
installPlugins(nope, availablePlugins.hello, false);
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
});
|
|
it("dynamic-plugin", function () {
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
const nope = require("../index.nodejs");
|
|
const extend = plugin("generateId", (org) => {
|
|
return [
|
|
{
|
|
adapted: (...args) => {
|
|
return org(...args);
|
|
},
|
|
name: "generateId",
|
|
path: "generateId",
|
|
},
|
|
];
|
|
});
|
|
installPlugins(nope, extend, false);
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
});
|
|
});
|
|
describe("load single Plugins", function () {
|
|
it("single-list-item", function () {
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
const nope = require("../index.nodejs");
|
|
installPlugins(nope, ["hello"], false);
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
});
|
|
it("by-path", function () {
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
const nope = require("../index.nodejs");
|
|
installPlugins(
|
|
nope,
|
|
["hello", "plugins.availablePlugins.hello", availablePlugins.hello],
|
|
false
|
|
);
|
|
delete require.cache[require.resolve("../index.nodejs")];
|
|
});
|
|
});
|
|
});
|