malwoden
Version:
   
47 lines • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var struct_1 = require("../struct");
var builder_1 = require("./builder");
describe("builder", function () {
it("can take snapshots", function () {
var b = new builder_1.Builder({ width: 10, height: 10 });
var m = b.getMap();
var v = { x: 1, y: 1 };
b.takeSnapshot();
m.set(v, 10);
b.takeSnapshot();
m.set(v, 20);
b.takeSnapshot();
var s = b.getSnapshots();
expect(s).toHaveLength(3);
expect(s[0].get(v)).toEqual(undefined);
expect(s[1].get(v)).toEqual(10);
expect(s[2].get(v)).toEqual(20);
});
it("can clear snapshots", function () {
var b = new builder_1.Builder({ width: 10, height: 10 });
expect(b.getSnapshots()).toHaveLength(0);
b.takeSnapshot();
expect(b.getSnapshots()).toHaveLength(1);
b.clearSnapshots();
expect(b.getSnapshots()).toHaveLength(0);
});
it("can start from an existing map", function () {
var t = new struct_1.Table(10, 10);
t.fill(1);
var b = new builder_1.Builder({ width: 10, height: 10 });
b.copyFrom(t);
var m = b.getMap();
expect(m.get({ x: 1, y: 1 })).toEqual(1);
t.set({ x: 1, y: 1 }, 0);
expect(m.get({ x: 1, y: 1 })).toEqual(1);
});
it("cannot copy between builders of different sizes", function () {
var b = new builder_1.Builder({ width: 10, height: 10 });
var b2 = new builder_1.Builder({ width: 20, height: 20 });
expect(function () {
b.copyFrom(b2.getMap());
}).toThrowError("Cannot copy between builders of different sizes");
});
});
//# sourceMappingURL=builder.spec.js.map