satie
Version:
A sheet music renderer for the web
68 lines (67 loc) • 2.74 kB
JavaScript
/**
* This file is part of Satie music engraver <https://github.com/jnetterf/satie>.
* Copyright (C) Joshua Netterfield <joshua.ca> 2015 - present.
*
* Satie is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* Satie is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Satie. If not, see <http://www.gnu.org/licenses/>.
*/
;
/**
* @file part of Satie test suite
*/
var engine_factory_1 = require("../engine_factory");
var chai_1 = require("chai");
var document_1 = require("../document");
var TestClass1 = (function () {
function TestClass1() {
}
return TestClass1;
}());
var TestClass2 = (function () {
function TestClass2() {
}
return TestClass2;
}());
describe("[factory.ts]", function () {
describe("Factory", function () {
var types = [
function (types) {
types[document_1.Type.Attributes] = TestClass1;
},
function (types) {
types[document_1.Type.Chord] = TestClass2;
}
];
var factory = new engine_factory_1.default(types);
it("can create multiple types", function () {
chai_1.expect(factory.create(document_1.Type.Attributes)).to.be.an.instanceof(TestClass1);
chai_1.expect(factory.create(document_1.Type.Chord)).to.be.an.instanceof(TestClass2);
});
it("can discern multiple types", function () {
chai_1.expect(factory.modelHasType(new TestClass1, document_1.Type.Attributes)).to.equal(true);
chai_1.expect(factory.modelHasType(new TestClass1, document_1.Type.Chord)).to.equal(false);
chai_1.expect(factory.modelHasType(new TestClass2, document_1.Type.Chord)).to.equal(true);
chai_1.expect(factory.modelHasType(new TestClass2, document_1.Type.Attributes)).to.equal(false);
});
it("throws on creating invalid type", function () {
chai_1.expect(function () {
factory.create(document_1.Type.Print);
}).to.throw();
});
it("throws on discerning invalid type", function () {
chai_1.expect(function () {
factory.modelHasType(new TestClass1, document_1.Type.Print);
}).to.throw();
});
});
});