markdown-it-tasks
Version:
Create Task lists with Markdown
131 lines (130 loc) • 10.3 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var _1 = __importDefault(require("./"));
var markdown_it_1 = __importDefault(require("markdown-it"));
var mockMath = Object.create(global.Math);
mockMath.random = function () { return 0.5; };
global.Math = mockMath;
describe("Run Markdown", function () {
it("Should run Markdown It correctly", function () {
var md = new markdown_it_1.default();
var input = "# My first file";
var result = md.render(input);
var output = "<h1>My first file</h1>\n";
expect(result).toStrictEqual(output);
});
it("Should run Markdown It with Tasks correctly", function () {
var md = new markdown_it_1.default();
md.use(_1.default);
var input = "# My first file";
var result = md.render(input);
var output = "<h1>My first file</h1>\n";
expect(result).toStrictEqual(output);
});
it("Should create a task list", function () {
var md = new markdown_it_1.default();
md.use(_1.default);
var input = "# My first file\n\n- [ ] This\n- [ ] Is A\n- [ ] Basic list\n";
var result = md.render(input);
var output = "<h1>My first file</h1>\n<ul class=\"task-list\">\n<li class=\"task-list__item\"><input class=\"task-list__input\" type=\"checkbox\" disabled> This</li>\n<li class=\"task-list__item\"><input class=\"task-list__input\" type=\"checkbox\" disabled> Is A</li>\n<li class=\"task-list__item\"><input class=\"task-list__input\" type=\"checkbox\" disabled> Basic list</li>\n</ul>\n";
expect(result).toStrictEqual(output);
});
it("Should create a task list with checked elements", function () {
var md = new markdown_it_1.default();
md.use(_1.default);
var input = "# My first file\n\n- [X] This\n- [x] Is A\n- [X] Basic list\n";
var result = md.render(input);
var output = "<h1>My first file</h1>\n<ul class=\"task-list\">\n<li class=\"task-list__item\"><input class=\"task-list__input\" type=\"checkbox\" checked disabled> This</li>\n<li class=\"task-list__item\"><input class=\"task-list__input\" type=\"checkbox\" checked disabled> Is A</li>\n<li class=\"task-list__item\"><input class=\"task-list__input\" type=\"checkbox\" checked disabled> Basic list</li>\n</ul>\n";
expect(result).toStrictEqual(output);
});
it("Should create a task list with checked elements and enabled", function () {
var md = new markdown_it_1.default();
md.use(_1.default, { enabled: true });
var input = "# My first file\n\n- [X] This\n- [x] Is A\n- [X] Basic list\n";
var result = md.render(input);
var output = "<h1>My first file</h1>\n<ul class=\"task-list\">\n<li class=\"task-list__item task-list__item--enabled\"><input class=\"task-list__input\" type=\"checkbox\" checked> This</li>\n<li class=\"task-list__item task-list__item--enabled\"><input class=\"task-list__input\" type=\"checkbox\" checked> Is A</li>\n<li class=\"task-list__item task-list__item--enabled\"><input class=\"task-list__input\" type=\"checkbox\" checked> Basic list</li>\n</ul>\n";
expect(result).toStrictEqual(output);
});
it("Should create a task list with wrapped labels", function () {
var md = new markdown_it_1.default();
md.use(_1.default, {
enabled: false,
label: true,
});
var input = "# My first file\n\n- [X] This\n- [x] Is A\n- [X] Basic list\n";
var result = md.render(input);
var output = "<h1>My first file</h1>\n<ul class=\"task-list\">\n<li class=\"task-list__item\"><label class=\"task-list__label\"><input class=\"task-list__input\" type=\"checkbox\" checked disabled> This</label></li>\n<li class=\"task-list__item\"><label class=\"task-list__label\"><input class=\"task-list__input\" type=\"checkbox\" checked disabled> Is A</label></li>\n<li class=\"task-list__item\"><label class=\"task-list__label\"><input class=\"task-list__input\" type=\"checkbox\" checked disabled> Basic list</label></li>\n</ul>\n";
expect(result).toStrictEqual(output);
});
it("Should create a task list with labels in the end", function () {
var md = new markdown_it_1.default();
md.use(_1.default, {
enabled: false,
label: true,
labelAfter: true,
});
var input = "# My first file\n\n- [X] This\n- [x] Is A\n- [X] Basic list\n";
var result = md.render(input);
var output = "<h1>My first file</h1>\n<ul class=\"task-list\">\n<li class=\"task-list__item\"><input class=\"task-list__input\" type=\"checkbox\" checked disabled id=\"task-list__item--4999000\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">This</label></li>\n<li class=\"task-list__item\"><input class=\"task-list__input\" type=\"checkbox\" checked disabled id=\"task-list__item--4999000\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">Is A</label></li>\n<li class=\"task-list__item\"><input class=\"task-list__input\" type=\"checkbox\" checked disabled id=\"task-list__item--4999000\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">Basic list</label></li>\n</ul>\n";
expect(result).toStrictEqual(output);
});
it("Should create a task list with labels in the beginning", function () {
var md = new markdown_it_1.default();
md.use(_1.default, {
enabled: false,
label: true,
labelAfter: false,
labelBefore: true,
});
var input = "# My first file\n\n- [X] This\n- [x] Is A\n- [X] Basic list\n";
var result = md.render(input);
var output = "<h1>My first file</h1>\n<ul class=\"task-list\">\n<li class=\"task-list__item\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">This</label><input class=\"task-list__input\" type=\"checkbox\" checked disabled id=\"task-list__item--4999000\"></li>\n<li class=\"task-list__item\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">Is A</label><input class=\"task-list__input\" type=\"checkbox\" checked disabled id=\"task-list__item--4999000\"></li>\n<li class=\"task-list__item\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">Basic list</label><input class=\"task-list__input\" type=\"checkbox\" checked disabled id=\"task-list__item--4999000\"></li>\n</ul>\n";
expect(result).toStrictEqual(output);
});
it("Should create a task list with enabled labels in the beginning", function () {
var md = new markdown_it_1.default();
md.use(_1.default, {
enabled: true,
label: true,
labelAfter: false,
labelBefore: true,
});
var input = "# My first file\n\n- [X] This\n- [x] Is A\n- [X] Basic list\n";
var result = md.render(input);
var output = "<h1>My first file</h1>\n<ul class=\"task-list\">\n<li class=\"task-list__item task-list__item--enabled\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">This</label><input class=\"task-list__input\" type=\"checkbox\" checked id=\"task-list__item--4999000\"></li>\n<li class=\"task-list__item task-list__item--enabled\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">Is A</label><input class=\"task-list__input\" type=\"checkbox\" checked id=\"task-list__item--4999000\"></li>\n<li class=\"task-list__item task-list__item--enabled\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">Basic list</label><input class=\"task-list__input\" type=\"checkbox\" checked id=\"task-list__item--4999000\"></li>\n</ul>\n";
expect(result).toStrictEqual(output);
});
it("Should create a task list with enabled labels at the end", function () {
var md = new markdown_it_1.default();
md.use(_1.default, {
enabled: true,
label: true,
labelAfter: true,
labelBefore: false,
});
var input = "# My first file\n\n- [ ] This\n- [ ] Is A\n- [ ] Basic list\n";
var result = md.render(input);
var output = "<h1>My first file</h1>\n<ul class=\"task-list\">\n<li class=\"task-list__item task-list__item--enabled\"><input class=\"task-list__input\" type=\"checkbox\" id=\"task-list__item--4999000\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">This</label></li>\n<li class=\"task-list__item task-list__item--enabled\"><input class=\"task-list__input\" type=\"checkbox\" id=\"task-list__item--4999000\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">Is A</label></li>\n<li class=\"task-list__item task-list__item--enabled\"><input class=\"task-list__input\" type=\"checkbox\" id=\"task-list__item--4999000\"><label class=\"task-list__label\" for=\"task-list__item--4999000\">Basic list</label></li>\n</ul>\n";
expect(result).toStrictEqual(output);
});
it("Should create an enabled task list with custom classes", function () {
var md = new markdown_it_1.default();
md.use(_1.default, {
enabled: true,
label: true,
containerClass: "list",
labelClass: "label",
labelBefore: true,
labelAfter: false,
itemClass: "item",
inputClass: "input",
});
var input = "# My first file\n\n- [X] This\n- [x] Is A\n- [X] Basic list\n ";
var result = md.render(input);
var output = "<h1>My first file</h1>\n<ul class=\"list\">\n<li class=\"item item--enabled\"><label class=\"label\" for=\"item--4999000\">This</label><input class=\"input\" type=\"checkbox\" checked id=\"item--4999000\"></li>\n<li class=\"item item--enabled\"><label class=\"label\" for=\"item--4999000\">Is A</label><input class=\"input\" type=\"checkbox\" checked id=\"item--4999000\"></li>\n<li class=\"item item--enabled\"><label class=\"label\" for=\"item--4999000\">Basic list</label><input class=\"input\" type=\"checkbox\" checked id=\"item--4999000\"></li>\n</ul>\n";
expect(result).toStrictEqual(output);
});
});