2019-11-01 01:57:01 +00:00
|
|
|
import { expect } from "chai";
|
|
|
|
|
2022-06-26 23:26:42 +01:00
|
|
|
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
|
|
|
},
|
|
|
|
],
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2022-12-07 22:55:15 +02: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 }],
|
2022-12-07 22:55:15 +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": 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,
|
|
|
|
},
|
|
|
|
],
|
2022-12-07 22:55:15 +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,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
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
|
|
|
},
|
2022-12-07 22:55:15 +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,
|
|
|
|
},
|
2022-12-07 22:55:15 +02:00
|
|
|
],
|
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-07 22:55:15 +02:00
|
|
|
{
|
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
|
|
|
},
|
2022-12-07 22:55:15 +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
|
|
|
},
|
|
|
|
],
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|