mappers.ts 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import { Helper } from "../../../commons/helper";
  2. import { assert, expect, should } from "../viewerReference";
  3. import { mapperManager } from "..";
  4. import { IMapper } from "../../../../src/configuration/mappers";
  5. export let name = "configuration mappers";
  6. describe("Configuration mappers", () => {
  7. it("should have html, json and dom mappers", (done) => {
  8. assert.isDefined(mapperManager);
  9. assert.isDefined(mapperManager.getMapper("html"));
  10. assert.isDefined(mapperManager.getMapper("json"));
  11. assert.isDefined(mapperManager.getMapper("dom"));
  12. done();
  13. });
  14. it("should map html elements correctly", (done) => {
  15. let htmlMappers = mapperManager.getMapper("html");
  16. let randomNumber = Math.random();
  17. let randomString = "test-" + Math.random();
  18. let htmlString = `<test-element model.rotation-offset-angle="${randomNumber}" model.cast-shadow="true" model.id="${randomString}"></test-element>`;
  19. var d = document.createElement('div');
  20. d.innerHTML = htmlString;
  21. let htmlElement = d.firstChild;
  22. let config = htmlMappers.map(htmlElement);
  23. if (config.model && typeof config.model === 'object') {
  24. assert.equal(config.model.rotationOffsetAngle, randomNumber);
  25. assert.isTrue(config.model.castShadow);
  26. assert.equal(config.model.id, randomString);
  27. done();
  28. } else {
  29. assert.fail();
  30. }
  31. });
  32. it("should map dom elements correctly", (done) => {
  33. let domMappers = mapperManager.getMapper("dom");
  34. let randomNumber = Math.random();
  35. let randomString = "test-" + Math.random();
  36. let htmlString = `<test-element>
  37. <model rotation-offset-angle="${randomNumber}" cast-shadow="true" id="${randomString}">
  38. </model>
  39. </test-element>`;
  40. var d = document.createElement('div');
  41. d.innerHTML = htmlString;
  42. let htmlElement = d.firstChild;
  43. let config = domMappers.map(htmlElement);
  44. if (config.model && typeof config.model === 'object') {
  45. assert.equal(config.model.rotationOffsetAngle, randomNumber);
  46. assert.isTrue(config.model.castShadow);
  47. assert.equal(config.model.id, randomString);
  48. done();
  49. } else {
  50. assert.fail();
  51. }
  52. });
  53. it("should register a new mapper and allow to use it", (done) => {
  54. let randomVersion = "version" + Math.random();
  55. let randomName = "test" + Math.random();
  56. randomName = randomName.replace(".", "");
  57. let newMapper: IMapper = {
  58. map: (rawSource) => {
  59. return {
  60. version: randomVersion
  61. };
  62. }
  63. };
  64. console.log("Next error log is expected");
  65. assert.isUndefined(mapperManager.getMapper(randomName));
  66. mapperManager.registerMapper(randomName, newMapper);
  67. let mapperTest = mapperManager.getMapper(randomName);
  68. assert.isDefined(mapperTest);
  69. assert.equal(mapperTest, newMapper);
  70. let config = mapperTest.map("");
  71. assert.equal(config.version, randomVersion);
  72. done();
  73. });
  74. });