import { Helper } from "../../../commons/helper";
import { assert, expect, should } from "../viewerReference";
import { mapperManager } from "..";
import { IMapper } from "../../../../src/configuration/mappers";
export let name = "configuration mappers";
describe("Configuration mappers", () => {
it("should have html, json and dom mappers", (done) => {
assert.isDefined(mapperManager);
assert.isDefined(mapperManager.getMapper("html"));
assert.isDefined(mapperManager.getMapper("json"));
assert.isDefined(mapperManager.getMapper("dom"));
done();
});
it("should map html elements correctly", (done) => {
let htmlMappers = mapperManager.getMapper("html");
let randomNumber = Math.random();
let randomString = "test-" + Math.random();
let htmlString = ``;
var d = document.createElement('div');
d.innerHTML = htmlString;
let htmlElement = d.firstChild;
let config = htmlMappers.map(htmlElement);
if (config.model && typeof config.model === 'object') {
assert.equal(config.model.rotationOffsetAngle, randomNumber);
assert.isTrue(config.model.castShadow);
assert.equal(config.model.id, randomString);
done();
} else {
assert.fail();
}
});
it("should map dom elements correctly", (done) => {
let domMappers = mapperManager.getMapper("dom");
let randomNumber = Math.random();
let randomString = "test-" + Math.random();
let htmlString = `
`;
var d = document.createElement('div');
d.innerHTML = htmlString;
let htmlElement = d.firstChild;
let config = domMappers.map(htmlElement);
if (config.model && typeof config.model === 'object') {
assert.equal(config.model.rotationOffsetAngle, randomNumber);
assert.isTrue(config.model.castShadow);
assert.equal(config.model.id, randomString);
done();
} else {
assert.fail();
}
});
it("should register a new mapper and allow to use it", (done) => {
let randomVersion = "version" + Math.random();
let randomName = "test" + Math.random();
randomName = randomName.replace(".", "");
let newMapper: IMapper = {
map: (rawSource) => {
return {
version: randomVersion
};
}
};
console.log("Next error log is expected");
assert.isUndefined(mapperManager.getMapper(randomName));
mapperManager.registerMapper(randomName, newMapper);
let mapperTest = mapperManager.getMapper(randomName);
assert.isDefined(mapperTest);
assert.equal(mapperTest, newMapper);
let config = mapperTest.map("");
assert.equal(config.version, randomVersion);
done();
});
});