From 4430c9c715bafac770e6ae19e93c68f4f73edbfd Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Thu, 16 May 2024 11:04:14 -0400 Subject: [PATCH] Coverage (#53) * Test Building Constructor --- src/building.js | 4 ---- src/buildingpart.js | 1 - src/multibuildingpart.js | 2 -- test/building.test.js | 20 +++++++++++++++----- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/building.js b/src/building.js index fd8d0e9..8b20040 100644 --- a/src/building.js +++ b/src/building.js @@ -207,13 +207,10 @@ class Building { const buildingType = xmlData.querySelector('[k="building"]'); const ways = []; if (xmlData.tagName === 'relation') { - // it is a multipolygon or building relation - window.printError('Tagname is "relation"'); // get all building relation parts // todo: multipolygon inner and outer roles. let parts = xmlData.querySelectorAll('member[role="part"]'); var ref = 0; - window.printError('Parts: ' + parts.length); for (let i = 0; i < parts.length; i++) { ref = parts[i].getAttribute('ref'); const part = this.fullXmlData.getElementById(ref); @@ -231,7 +228,6 @@ class Building { } ways.push(xmlData); } - window.printError('Number of ways: ' + ways.length); for (let i = 0; i < ways.length; i++) { const way = ways[i]; if (way.tagName.toLowerCase() === 'way') { diff --git a/src/buildingpart.js b/src/buildingpart.js index 143c36e..47f1a82 100644 --- a/src/buildingpart.js +++ b/src/buildingpart.js @@ -348,7 +348,6 @@ class BuildingPart { * If there is whitespace between the unit and the number, it will remain. */ static normalizeLength(length) { - window.printError('length: ' + length); if (typeof length === 'string' || length instanceof String) { if (length.includes('km')){ // remove final character. diff --git a/src/multibuildingpart.js b/src/multibuildingpart.js index 3bf229b..d8c885d 100644 --- a/src/multibuildingpart.js +++ b/src/multibuildingpart.js @@ -18,12 +18,10 @@ class MultiBuildingPart extends BuildingPart { const outerMembers = this.way.querySelectorAll('member[role="outer"]'); const innerShapes = []; var shapes = []; - window.printError('Inner members: ' + innerMembers.length); for (let i = 0; i < innerMembers.length; i++) { const way = this.fullXmlData.getElementById(innerMembers[i].getAttribute('ref')); innerShapes.push(BuildingShapeUtils.createShape(way, this.nodelist)); } - window.printError('Outer members: ' + outerMembers.length); const ways = []; for (let j = 0; j < outerMembers.length; j++) { const way = this.fullXmlData.getElementById(outerMembers[j].getAttribute('ref')); diff --git a/test/building.test.js b/test/building.test.js index d2c69f6..4cb16fe 100644 --- a/test/building.test.js +++ b/test/building.test.js @@ -1,6 +1,8 @@ /** * @jest-environment jsdom */ +import {toBeDeepCloseTo} from 'jest-matcher-deep-close-to'; +expect.extend({toBeDeepCloseTo}); import { Shape, Mesh } from 'three'; import { TextEncoder } from 'node:util'; @@ -55,11 +57,11 @@ beforeEach(() => { fetch.resetMocks(); }); -// test('Test Factory', async() => { -// fetch.mockResponseOnce(data); -// const shape = await Building.create('relation', '4'); -// expect(fetch).toHaveBeenCalledTimes(2); -//}); +test('Test Constructor', async() => { + const bldg = new Building('4', data); + expect(bldg.home).toBeDeepCloseTo([4.0005, 4.0005], 10); + expect(bldg.parts.length).toBe(0); +}); test('Create Nodelist', () => { let xmlData = new window.DOMParser().parseFromString(data, 'text/xml'); @@ -67,3 +69,11 @@ test('Create Nodelist', () => { expect(Object.keys(list).length).toBe(4); expect(list['3']).toStrictEqual(['4', '4']); }); + +window.printError = printError; + +const errors = []; + +function printError(txt) { + errors.push[txt]; +}