honkit
Version:
HonKit is building beautiful books using Markdown.
72 lines (71 loc) • 3.67 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const immutable_1 = __importDefault(require("immutable"));
const pluginDependency_1 = __importDefault(require("../pluginDependency"));
describe("PluginDependency", () => {
describe("createFromString", () => {
test("must parse name", () => {
const plugin = pluginDependency_1.default.createFromString("hello");
expect(plugin.getName()).toBe("hello");
expect(plugin.getVersion()).toBe("*");
});
test("must parse state", () => {
const plugin = pluginDependency_1.default.createFromString("-hello");
expect(plugin.getName()).toBe("hello");
expect(plugin.isEnabled()).toBe(false);
});
describe("Version", () => {
test("must parse version", () => {
const plugin = pluginDependency_1.default.createFromString("hello@1.0.0");
expect(plugin.getName()).toBe("hello");
expect(plugin.getVersion()).toBe("1.0.0");
});
test("must parse semver", () => {
const plugin = pluginDependency_1.default.createFromString("hello@>=4.0.0");
expect(plugin.getName()).toBe("hello");
expect(plugin.getVersion()).toBe(">=4.0.0");
});
});
describe("GIT Version", () => {
test("must handle HTTPS urls", () => {
const plugin = pluginDependency_1.default.createFromString("hello@git+https://github.com/GitbookIO/plugin-ga.git");
expect(plugin.getName()).toBe("hello");
expect(plugin.getVersion()).toBe("git+https://github.com/GitbookIO/plugin-ga.git");
});
test("must handle SSH urls", () => {
const plugin = pluginDependency_1.default.createFromString("hello@git+ssh://samy@github.com/GitbookIO/plugin-ga.git");
expect(plugin.getName()).toBe("hello");
expect(plugin.getVersion()).toBe("git+ssh://samy@github.com/GitbookIO/plugin-ga.git");
});
});
describe("listToArray", () => {
test("must create an array from a list of plugin dependencies", () => {
const list = pluginDependency_1.default.listToArray(immutable_1.default.List([
pluginDependency_1.default.createFromString("hello@1.0.0"),
pluginDependency_1.default.createFromString("noversion"),
pluginDependency_1.default.createFromString("-disabled"),
]));
expect(list).toEqual(["hello@1.0.0", "noversion", "-disabled"]);
});
});
describe("listFromArray", () => {
test("must create an array from a list of plugin dependencies", () => {
const arr = immutable_1.default.fromJS([
"hello@1.0.0",
{
name: "plugin-ga",
version: "git+ssh://samy@github.com/GitbookIO/plugin-ga.git",
},
]);
const list = pluginDependency_1.default.listFromArray(arr);
expect(list.first().getName()).toBe("hello");
expect(list.first().getVersion()).toBe("1.0.0");
expect(list.last().getName()).toBe("plugin-ga");
expect(list.last().getVersion()).toBe("git+ssh://samy@github.com/GitbookIO/plugin-ga.git");
});
});
});
});