Files
docx-js/src/file/numbering/concrete-numbering.spec.ts

305 lines
9.5 KiB
TypeScript
Raw Normal View History

2019-11-01 01:57:01 +00:00
import { expect } from "chai";
import { Formatter } from "@export/formatter";
2019-11-01 01:57:01 +00:00
import { ConcreteNumbering } from "./num";
describe("ConcreteNumbering", () => {
describe("#overrideLevel", () => {
it("sets a new override level for the given level number", () => {
2021-03-12 03:58:05 +00:00
const concreteNumbering = new ConcreteNumbering({
numId: 0,
abstractNumId: 1,
reference: "1",
instance: 0,
2022-12-07 23:03:42 +02:00
overrideLevels: [
{
num: 3,
},
],
2021-03-12 03:58:05 +00:00
});
2019-11-01 01:57:01 +00:00
const tree = new Formatter().format(concreteNumbering);
2021-03-12 03:58:05 +00:00
expect(tree).to.deep.equal({
"w:num": [
2019-11-01 01:57:01 +00:00
{
2021-03-12 03:58:05 +00:00
_attr: {
"w:numId": 0,
},
},
{
"w:abstractNumId": {
_attr: {
"w:val": 1,
},
},
},
{
"w:lvlOverride": {
_attr: {
"w:ilvl": 3,
},
},
2019-11-01 01:57:01 +00:00
},
],
});
});
it("sets a new override level for two different level numbers", () => {
const concreteNumbering = new ConcreteNumbering({
numId: 0,
abstractNumId: 1,
reference: "1",
instance: 0,
2022-12-07 23:03:42 +02:00
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,
},
},
},
],
});
});
2019-11-01 01:57:01 +00:00
it("sets the startOverride element if start is given", () => {
2021-03-12 03:58:05 +00:00
const concreteNumbering = new ConcreteNumbering({
numId: 0,
abstractNumId: 1,
reference: "1",
instance: 0,
2022-12-07 23:03:42 +02:00
overrideLevels: [
{
num: 1,
start: 9,
},
],
});
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,
},
},
},
],
},
],
});
});
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,
2022-12-07 23:03:42 +02:00
},
],
});
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,
},
{
2022-12-07 23:03:42 +02:00
num: 3,
},
],
2021-03-12 03:58:05 +00:00
});
2019-11-01 01:57:01 +00:00
const tree = new Formatter().format(concreteNumbering);
2022-10-25 01:08:54 +01:00
expect(tree).to.deep.equal({
"w:num": [
2019-11-01 01:57:01 +00:00
{
_attr: {
2022-10-25 01:08:54 +01:00
"w:numId": 0,
2019-11-01 01:57:01 +00:00
},
},
{
2022-10-25 01:08:54 +01:00
"w:abstractNumId": {
2019-11-01 01:57:01 +00:00
_attr: {
2022-10-25 01:08:54 +01:00
"w:val": 1,
2019-11-01 01:57:01 +00:00
},
},
},
2022-10-25 01:08:54 +01:00
{
"w:lvlOverride": [
{
_attr: {
"w:ilvl": 1,
},
},
{
"w:startOverride": {
_attr: {
"w:val": 9,
},
},
},
],
},
{
2022-12-10 12:47:48 +02:00
"w:lvlOverride": {
_attr: {
"w:ilvl": 3,
2022-12-07 23:03:42 +02:00
},
2022-12-10 12:47:48 +02:00
},
},
2019-11-01 01:57:01 +00:00
],
});
});
it("sets the lvl element if overrideLevel.Level is accessed", () => {
2021-03-12 03:58:05 +00:00
const concreteNumbering = new ConcreteNumbering({
numId: 0,
abstractNumId: 1,
reference: "1",
instance: 0,
2022-12-07 23:03:42 +02:00
overrideLevels: [
{
num: 1,
},
],
2021-03-12 03:58:05 +00:00
});
2019-11-01 01:57:01 +00:00
const tree = new Formatter().format(concreteNumbering);
2021-03-12 03:58:05 +00:00
expect(tree).to.deep.equal({
"w:num": [
2019-11-01 01:57:01 +00:00
{
2021-03-12 03:58:05 +00:00
_attr: {
"w:numId": 0,
},
},
{
"w:abstractNumId": {
_attr: {
"w:val": 1,
},
},
},
{
"w:lvlOverride": {
_attr: {
"w:ilvl": 1,
},
},
2019-11-01 01:57:01 +00:00
},
],
});
});
});
});