UNPKG

markdown-it-tasks

Version:

Create Task lists with Markdown

131 lines (130 loc) 10.3 kB
"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); }); });