diff --git a/ts/tests/numberingTest.ts b/ts/tests/numberingTest.ts index 404460133a..4b7f2df866 100644 --- a/ts/tests/numberingTest.ts +++ b/ts/tests/numberingTest.ts @@ -1,21 +1,47 @@ -import { assert } from "chai"; +import { expect } from "chai"; import { Numbering } from "../numbering"; +import { Formatter } from '../export/formatter'; function jsonify(obj: Object) { let stringifiedJson = JSON.stringify(obj); return JSON.parse(stringifiedJson); } -describe("", () => { +describe("Numbering", () => { let numbering = new Numbering; beforeEach(() => { numbering = new Numbering(); }); - describe("#methodName()", () => { - it("should ", () => { + describe("#constructor", () => { + it("creates a default numbering with one abstract and one concrete instance", () => { + const tree = new Formatter().format(numbering); + expect(Object.keys(tree)).to.deep.equal(['w:numbering']); + const abstractNums = tree['w:numbering'].filter(el => el['w:abstractNum']); + expect(abstractNums).to.have.lengthOf(1); + expect(abstractNums[0]['w:abstractNum']).to.deep.include.members([ + {_attr: {"w:abstractNumId": 0, "w15:restartNumberingAfterBreak": 0}}, + {"w:multiLevelType": [{"_attr": {"w:val": "hybridMultilevel"}}]}, + ]); + abstractNums.filter(el => el['w:lvl']).forEach((el, ix) => { + expect(Object.keys(el)).to.have.lengthOf(1); + expect(Object.keys(el['w:lvl']).sort()).to.deep.equal([ + "_attr", "w:start", "w:lvlJc", "w:numFmt", "w:pPr", "w:rPr" + ]) + expect(el['w:lvl']).to.have.deep.members([ + {"_attr": {"w:ilvl": ix, "w15:tentative": 1}}, + {"w:start": [{"_attr": {"w:val": 1}}]}, + {"w:lvlJc": [{"_attr": {"w:val": "left"}}]}, + {"w:numFmt": [{"_attr": {"w:val": "bullet"}}]}, + ]); + // Once chai 4.0.0 lands and #644 is resolved, we can add the following to the test: + // {"w:lvlText": [{"_attr": {"w:val": "•"}}]}, + // {"w:rPr": [{"w:rFonts": [{"_attr": {"w:ascii": "Symbol", "w:hAnsi": "Symbol", "w:hint": "default"}}]}]}, + // {"w:pPr": [{"_attr": {}}, + // {"w:ind": [{"_attr": {"w:left": 720, "w:hanging": 360}}]}]}, + }) }); }); }); \ No newline at end of file