From 10f92cfbb1f7d3c16c0642f8f8cea3becdc782ce Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Sun, 23 Jul 2023 20:37:27 +1000 Subject: [PATCH] Fix test failures, especially timeouts. --- buildprocess/babelPlugin.js | 3 ++- buildprocess/bundle.js | 3 ++- .../SensorObservationServiceCatalogItem.ts | 27 ++++++++++--------- .../Map/Panels/HelpPanel/StyledHtml.tsx | 4 +++ ...SensorObservationServiceCatalogItemSpec.ts | 13 ++++++--- test/SpecMain.ts | 3 ++- 6 files changed, 35 insertions(+), 18 deletions(-) diff --git a/buildprocess/babelPlugin.js b/buildprocess/babelPlugin.js index f60effab3ea..fa57a08f3a4 100644 --- a/buildprocess/babelPlugin.js +++ b/buildprocess/babelPlugin.js @@ -14,7 +14,8 @@ const babelPlugin = (options = {}) => ({ caller: { name: "esbuild-plugin-babel", supportsStaticESM: true - } + }, + inputSourceMap: true }); if (!babelOptions) return { contents }; diff --git a/buildprocess/bundle.js b/buildprocess/bundle.js index 4edf8d59109..9e965eaa3ed 100644 --- a/buildprocess/bundle.js +++ b/buildprocess/bundle.js @@ -65,6 +65,7 @@ esbuild babelPlugin({ filter: /\.[jt]sx$/, config: { + sourceMaps: true, plugins: [ //"babel-plugin-jsx-control-statements", transformJsxControlStatements, @@ -87,7 +88,7 @@ esbuild ".glb": "file", ".xml": "file", ".DAC": "file", - ".csv": "file" + ".csv": "text" }, external: [ // Don't try to load node-only modules and other unnecessary stuff diff --git a/src/Models/Catalog/Ows/SensorObservationServiceCatalogItem.ts b/src/Models/Catalog/Ows/SensorObservationServiceCatalogItem.ts index e3f761bfa18..d96157ff5ed 100644 --- a/src/Models/Catalog/Ows/SensorObservationServiceCatalogItem.ts +++ b/src/Models/Catalog/Ows/SensorObservationServiceCatalogItem.ts @@ -26,6 +26,7 @@ import StratumOrder from "../../Definition/StratumOrder"; import { SelectableDimension } from "../../SelectableDimensions/SelectableDimensions"; import Terria from "../../Terria"; import proxyCatalogItemUrl from "../proxyCatalogItemUrl"; +import loadText from "../../../Core/loadText"; interface GetFeatureOfInterestResponse { featureMember?: FeatureMember[] | FeatureMember; @@ -206,14 +207,6 @@ class GetObservationRequest { return this.catalogItem.url; } - @computed - get requestTemplate() { - return ( - this.catalogItem.requestTemplate || - SensorObservationServiceCatalogItem.defaultRequestTemplate - ); - } - @computed get parameters() { const foiIdentifier = this.catalogItem.chartFeatureOfInterestIdentifier; @@ -302,7 +295,8 @@ class GetObservationRequest { const response = await loadSoapBody( this.catalogItem, this.url, - this.requestTemplate, + this.catalogItem.requestTemplate || + (await this.catalogItem._private_getDefaultRequestTemplate()), templateContext ); @@ -314,7 +308,7 @@ export default class SensorObservationServiceCatalogItem extends TableMixin( CreateModel(SensorObservationServiceCatalogItemTraits) ) { static readonly type = "sos"; - static defaultRequestTemplate = require("./SensorObservationServiceRequestTemplate.xml"); + static defaultRequestTemplate: string | undefined = undefined; constructor( id: string | undefined, @@ -352,12 +346,21 @@ export default class SensorObservationServiceCatalogItem extends TableMixin( return "0d"; } + async _private_getDefaultRequestTemplate() { + if (!SensorObservationServiceCatalogItem.defaultRequestTemplate) { + const defaultRequestTemplateUrl = require("./SensorObservationServiceRequestTemplate.xml"); + SensorObservationServiceCatalogItem.defaultRequestTemplate = + await loadText(defaultRequestTemplateUrl); + } + + return SensorObservationServiceCatalogItem.defaultRequestTemplate!; + } + @action async _private_loadFeaturesData() { const request = new GetFeatureOfInterestRequest( this, - this.requestTemplate || - SensorObservationServiceCatalogItem.defaultRequestTemplate + this.requestTemplate || (await this._private_getDefaultRequestTemplate()) ); const response = await request.perform(); if (response === undefined) { diff --git a/src/ReactViews/Map/Panels/HelpPanel/StyledHtml.tsx b/src/ReactViews/Map/Panels/HelpPanel/StyledHtml.tsx index 339a0fc39d0..fa6db797492 100644 --- a/src/ReactViews/Map/Panels/HelpPanel/StyledHtml.tsx +++ b/src/ReactViews/Map/Panels/HelpPanel/StyledHtml.tsx @@ -110,4 +110,8 @@ const StyledHtml: React.FC = observer((props: PropsType) => { ); }); +StyledHtml.defaultProps = { + injectTooltips: true +}; + export default StyledHtml; diff --git a/test/Models/Catalog/CatalogItems/SensorObservationServiceCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/SensorObservationServiceCatalogItemSpec.ts index 87ce2a35854..42536497593 100644 --- a/test/Models/Catalog/CatalogItems/SensorObservationServiceCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/SensorObservationServiceCatalogItemSpec.ts @@ -25,9 +25,16 @@ describe("SensorObservationServiceCatalogItem", function () { test: (xhr) => /^application\/soap\+xml/.test(xhr.contentType()), parse: (paramString) => paramString }); - jasmine.Ajax.stubRequest( - "build/TerriaJS/data/regionMapping.json" - ).andReturn({ responseText: regionMapping }); + + async function completeActualRequest(request: JasmineAjaxRequest) { + const response = await fetch(request.url); + request.respondWith({ + responseText: await response.text() + }); + } + + jasmine.Ajax.stubRequest(/^esbuild/).andCallFunction(completeActualRequest); + jasmine.Ajax.stubRequest(/^\//).andCallFunction(completeActualRequest); item = new SensorObservationServiceCatalogItem("test", new Terria()); item.setTrait(CommonStrata.user, "url", "https://sos.example.com"); diff --git a/test/SpecMain.ts b/test/SpecMain.ts index 91c2a16259b..f3ee0f01823 100644 --- a/test/SpecMain.ts +++ b/test/SpecMain.ts @@ -3,6 +3,7 @@ import "../lib/Core/prerequisites"; import "jasmine-ajax"; import { configure, spy } from "mobx"; import i18next from "i18next"; +import { initReactI18next } from "react-i18next"; import registerCatalogMembers from "../lib/Models/Catalog/registerCatalogMembers"; configure({ @@ -24,7 +25,7 @@ spy((event) => { }); beforeAll(async function () { - await i18next.init({ + await i18next.use(initReactI18next).init({ lng: "cimode", debug: false, resources: {}