terriajs
Version:
Geospatial data visualization platform.
97 lines (85 loc) • 3.12 kB
text/typescript
import i18next from "i18next";
import { configure, runInAction } from "mobx";
import { http, HttpResponse } from "msw";
import isDefined from "../../../../lib/Core/isDefined";
import CommonStrata from "../../../../lib/Models/Definition/CommonStrata";
import Terria from "../../../../lib/Models/Terria";
import WebProcessingServiceCatalogFunctionJob from "../../../../lib/Models/Catalog/Ows/WebProcessingServiceCatalogFunctionJob";
import { worker } from "../../../mocks/browser";
// For more tests see - test\Models\WebProcessingServiceCatalogFunctionSpec.ts
import regionMapping from "../../../../wwwroot/data/regionMapping.json";
configure({
enforceActions: "observed",
computedRequiresReaction: true
});
describe("WebProcessingServiceCatalogFunctionJob", function () {
let item: WebProcessingServiceCatalogFunctionJob;
beforeEach(function () {
const terria = initTerria();
item = new WebProcessingServiceCatalogFunctionJob("test", terria);
runInAction(() => {
item.setTrait(CommonStrata.user, "parameters", {
name: "point",
value: "144.97228,-37.77138"
});
item.setTrait(CommonStrata.user, "geojsonFeatures", [
{
type: "Feature",
geometry: {
type: "Point",
coordinates: [144.97228, -37.77138]
},
properties: {}
}
]);
item.setTrait(CommonStrata.user, "jobStatus", "finished");
});
worker.use(
http.get("*/build/TerriaJS/data/regionMapping.json", () =>
HttpResponse.json(regionMapping)
)
);
});
it("has a type & typeName", function () {
expect(WebProcessingServiceCatalogFunctionJob.type).toBe("wps-result");
expect(item.typeName).toBe(
i18next.t("models.webProcessingService.wpsResult")
);
});
describe("after loading metadata", function () {
it("correctly defines `Inputs` in info", async function () {
await item.loadMetadata();
const inputSection = item.info.find((info) => info.name === "Inputs");
expect(inputSection).toBeDefined();
if (isDefined(inputSection)) {
expect(inputSection.content).toMatch(/point/);
expect(inputSection.content).toMatch(/144.97228,-37.77138/);
}
});
it("sets the featureInfoTemplate", async function () {
await item.loadMetadata();
expect(item.featureInfoTemplate.template).toBeDefined();
});
describe("shortReportSections", function () {
it("adds a shortReport for LiteralData output", async function () {
item.setTrait(CommonStrata.user, "wpsResponse", {
ProcessOutputs: {
Output: { Title: "Sum", Data: { LiteralData: "4242" } }
}
});
await item.loadMetadata();
const shortReport = item.shortReportSections.find(
(r) => r.name === "Sum"
);
expect(shortReport).toBeDefined();
if (isDefined(shortReport)) {
expect(shortReport.content).toBe("4242");
}
});
});
});
});
function initTerria() {
const terria = new Terria({ baseUrl: "./" });
return terria;
}