From e6af9b4b730bbb45d19eb6619dbf14a28cf4509a Mon Sep 17 00:00:00 2001 From: Andrey Savin <69673750+anti-the-social@users.noreply.github.com> Date: Wed, 7 Dec 2022 22:55:15 +0200 Subject: [PATCH] fix for tests && new tests for multi-level cases --- src/file/numbering/concrete-numbering.spec.ts | 186 +++++++++++++++++- 1 file changed, 180 insertions(+), 6 deletions(-) diff --git a/src/file/numbering/concrete-numbering.spec.ts b/src/file/numbering/concrete-numbering.spec.ts index ef73d18983..449470fce1 100644 --- a/src/file/numbering/concrete-numbering.spec.ts +++ b/src/file/numbering/concrete-numbering.spec.ts @@ -12,9 +12,9 @@ describe("ConcreteNumbering", () => { abstractNumId: 1, reference: "1", instance: 0, - overrideLevel: { + overrideLevels: [{ num: 3, - }, + }], }); const tree = new Formatter().format(concreteNumbering); @@ -44,16 +44,62 @@ describe("ConcreteNumbering", () => { }); }); + it("sets a new override level for two different level numbers", () => { + const concreteNumbering = new ConcreteNumbering({ + numId: 0, + abstractNumId: 1, + reference: "1", + instance: 0, + overrideLevels: [ + { num: 3 }, + { num: 5 } + ], + }); + + const tree = new Formatter().format(concreteNumbering); + + expect(tree).to.deep.equal({ + "w:num": [ + { + _attr: { + "w:numId": 0, + }, + }, + { + "w:abstractNumId": { + _attr: { + "w:val": 1, + }, + }, + }, + { + "w:lvlOverride": { + _attr: { + "w:ilvl": 3, + }, + }, + }, + { + "w:lvlOverride": { + _attr: { + "w:ilvl": 5, + }, + }, + }, + ], + }); + }); + it("sets the startOverride element if start is given", () => { const concreteNumbering = new ConcreteNumbering({ numId: 0, abstractNumId: 1, reference: "1", instance: 0, - overrideLevel: { + overrideLevels: [{ num: 1, start: 9, - }, + }], }); const tree = new Formatter().format(concreteNumbering); expect(tree).to.deep.equal({ @@ -90,15 +136,143 @@ describe("ConcreteNumbering", () => { }); }); + it("sets the startOverride element for several levels if start is given", () => { + const concreteNumbering = new ConcreteNumbering({ + numId: 0, + abstractNumId: 1, + reference: "1", + instance: 0, + overrideLevels: [ + { + num: 1, + start: 9, + }, + { + num: 3, + start: 10, + } + ], + }); + const tree = new Formatter().format(concreteNumbering); + expect(tree).to.deep.equal({ + "w:num": [ + { + _attr: { + "w:numId": 0, + }, + }, + { + "w:abstractNumId": { + _attr: { + "w:val": 1, + }, + }, + }, + { + "w:lvlOverride": [ + { + _attr: { + "w:ilvl": 1, + }, + }, + { + "w:startOverride": { + _attr: { + "w:val": 9, + }, + }, + }, + ], + }, + { + "w:lvlOverride": [ + { + _attr: { + "w:ilvl": 3, + }, + }, + { + "w:startOverride": { + _attr: { + "w:val": 10, + }, + }, + }, + ], + }, + ], + }); + }); + + it("Mix of overrideLevels with start and without", () => { + const concreteNumbering = new ConcreteNumbering({ + numId: 0, + abstractNumId: 1, + reference: "1", + instance: 0, + overrideLevels: [ + { + num: 1, + start: 9, + }, + { + num: 3 + } + ], + }); + const tree = new Formatter().format(concreteNumbering); + expect(tree).to.deep.equal({ + "w:num": [ + { + _attr: { + "w:numId": 0, + }, + }, + { + "w:abstractNumId": { + _attr: { + "w:val": 1, + }, + }, + }, + { + "w:lvlOverride": [ + { + _attr: { + "w:ilvl": 1, + }, + }, + { + "w:startOverride": { + _attr: { + "w:val": 9, + }, + }, + }, + ], + }, + { + "w:lvlOverride": [ + { + _attr: { + "w:ilvl": 3, + }, + } + ], + }, + ], + }); + }); + it("sets the lvl element if overrideLevel.Level is accessed", () => { const concreteNumbering = new ConcreteNumbering({ numId: 0, abstractNumId: 1, reference: "1", instance: 0, - overrideLevel: { + overrideLevels: [{ num: 1, - }, + }], }); const tree = new Formatter().format(concreteNumbering); expect(tree).to.deep.equal({