diff options
| author | Michael Williamson <mike@zwobble.org> | 2025-09-11 15:07:41 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2025-09-11 15:07:41 +0100 |
| commit | cee62eea4e52484a473128f342e2a497e32261b7 (patch) | |
| tree | c2d38753571a59f38c337edaac76d185a7e3601d /test/docx/numbering-xml.tests.js | |
| parent | 660da135c950031097269f5d610e771698f99eb3 (diff) | |
Handle numbering levels defined without an index
Diffstat (limited to 'test/docx/numbering-xml.tests.js')
| -rw-r--r-- | test/docx/numbering-xml.tests.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/test/docx/numbering-xml.tests.js b/test/docx/numbering-xml.tests.js index a648349..004e9ab 100644 --- a/test/docx/numbering-xml.tests.js +++ b/test/docx/numbering-xml.tests.js @@ -45,6 +45,69 @@ test('w:num element referencing non-existent w:abstractNumId is ignored', functi duck.assertThat(numbering.findLevel("47", "0"), duck.equalTo(null)); }); +test('given no other levels with index of 0 when level is missing w:ilvl then level index is 0', function() { + var numbering = readNumberingXml( + new XmlElement("w:numbering", {}, [ + new XmlElement("w:abstractNum", {"w:abstractNumId": "42"}, [ + new XmlElement("w:lvl", {}, [ + new XmlElement("w:numFmt", {"w:val": "decimal"}) + ]) + ]), + new XmlElement("w:num", {"w:numId": "47"}, [ + new XmlElement("w:abstractNumId", {"w:val": "42"}) + ]) + ]), + {styles: stylesReader.defaultStyles} + ); + duck.assertThat(numbering.findLevel("47", "0"), duck.hasProperties({ + isOrdered: true + })); +}); + +test('given previous other level with index of 0 when level is missing w:ilvl then level is ignored', function() { + var numbering = readNumberingXml( + new XmlElement("w:numbering", {}, [ + new XmlElement("w:abstractNum", {"w:abstractNumId": "42"}, [ + new XmlElement("w:lvl", {"w:ilvl": "0"}, [ + new XmlElement("w:numFmt", {"w:val": "bullet"}) + ]), + new XmlElement("w:lvl", {}, [ + new XmlElement("w:numFmt", {"w:val": "decimal"}) + ]) + ]), + new XmlElement("w:num", {"w:numId": "47"}, [ + new XmlElement("w:abstractNumId", {"w:val": "42"}) + ]) + ]), + {styles: stylesReader.defaultStyles} + ); + duck.assertThat(numbering.findLevel("47", "0"), duck.hasProperties({ + isOrdered: false + })); +}); + +test('given subsequent other level with index of 0 when level is missing w:ilvl then level is ignored', function() { + var numbering = readNumberingXml( + new XmlElement("w:numbering", {}, [ + new XmlElement("w:abstractNum", {"w:abstractNumId": "42"}, [ + new XmlElement("w:lvl", {}, [ + new XmlElement("w:numFmt", {"w:val": "decimal"}) + ]), + new XmlElement("w:lvl", {"w:ilvl": "0"}, [ + new XmlElement("w:numFmt", {"w:val": "bullet"}) + ]) + ]), + new XmlElement("w:num", {"w:numId": "47"}, [ + new XmlElement("w:abstractNumId", {"w:val": "42"}) + ]) + ]), + {styles: stylesReader.defaultStyles} + ); + duck.assertThat(numbering.findLevel("47", "0"), duck.hasProperties({ + isOrdered: false + })); +}); + test('when level is missing w:numFmt then level is ordered', function() { var numbering = readNumberingXml( new XmlElement("w:numbering", {}, [ |
