add ID property to Num and test Numbering methods

This commit is contained in:
felipe
2017-03-08 17:28:44 +01:00
parent 709ff25702
commit 6b702c4bd6
2 changed files with 38 additions and 0 deletions

View File

@ -24,6 +24,7 @@ class NumAttributes extends XmlAttributeComponent {
}
export class Num extends XmlComponent {
public id: number;
constructor(numId: number, abstractNumId: number) {
super("w:num");
@ -31,5 +32,11 @@ export class Num extends XmlComponent {
numId: numId,
}));
this.root.push(new AbstractNumId(abstractNumId));
this.id = numId;
}
public clearVariables(): void {
super.clearVariables();
delete this.id;
}
}

View File

@ -1,6 +1,7 @@
import { expect } from "chai";
import { Numbering } from "../numbering";
import { AbstractNumbering } from "../numbering/abstract-numbering";
import { Num } from "../numbering/num";
import { Formatter } from '../export/formatter';
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", () => {