add ID property to Num and test Numbering methods
This commit is contained in:
@ -24,6 +24,7 @@ class NumAttributes extends XmlAttributeComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class Num extends XmlComponent {
|
export class Num extends XmlComponent {
|
||||||
|
public id: number;
|
||||||
|
|
||||||
constructor(numId: number, abstractNumId: number) {
|
constructor(numId: number, abstractNumId: number) {
|
||||||
super("w:num");
|
super("w:num");
|
||||||
@ -31,5 +32,11 @@ export class Num extends XmlComponent {
|
|||||||
numId: numId,
|
numId: numId,
|
||||||
}));
|
}));
|
||||||
this.root.push(new AbstractNumId(abstractNumId));
|
this.root.push(new AbstractNumId(abstractNumId));
|
||||||
|
this.id = numId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public clearVariables(): void {
|
||||||
|
super.clearVariables();
|
||||||
|
delete this.id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { expect } from "chai";
|
import { expect } from "chai";
|
||||||
import { Numbering } from "../numbering";
|
import { Numbering } from "../numbering";
|
||||||
import { AbstractNumbering } from "../numbering/abstract-numbering";
|
import { AbstractNumbering } from "../numbering/abstract-numbering";
|
||||||
|
import { Num } from "../numbering/num";
|
||||||
import { Formatter } from '../export/formatter';
|
import { Formatter } from '../export/formatter';
|
||||||
|
|
||||||
function jsonify(obj: Object) {
|
function jsonify(obj: Object) {
|
||||||
@ -45,6 +46,36 @@ describe("Numbering", () => {
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("#addAbstractNumbering", () => {
|
||||||
|
it("returns a new AbstractNumbering instance", () => {
|
||||||
|
const a2 = numbering.addAbstractNumbering();
|
||||||
|
expect(a2).to.be.instanceof(AbstractNumbering);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("assigns a unique ID to each abstract numbering it creates", () => {
|
||||||
|
const a2 = numbering.addAbstractNumbering();
|
||||||
|
const a3 = numbering.addAbstractNumbering();
|
||||||
|
expect(a2.id).not.to.equal(a3.id);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("#addConcreteNumbering", () => {
|
||||||
|
it("returns a new Num instance with its abstract ID set to the AbstractNumbering's ID", () => {
|
||||||
|
const a2 = numbering.addAbstractNumbering();
|
||||||
|
const n = numbering.addConcreteNumbering(a2);
|
||||||
|
expect(n).to.be.instanceof(Num);
|
||||||
|
const tree = new Formatter().format(numbering);
|
||||||
|
expect(n.id).to.equal(a2.id);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("assigns a unique ID to each concrete numbering it creates", () => {
|
||||||
|
const a2 = numbering.addAbstractNumbering();
|
||||||
|
const n = numbering.addConcreteNumbering(a2);
|
||||||
|
const n2 = numbering.addConcreteNumbering(a2);
|
||||||
|
expect(n.id).not.to.equal(n2.id);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("AbstractNumbering", () => {
|
describe("AbstractNumbering", () => {
|
||||||
|
Reference in New Issue
Block a user