Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ yarn.lock

# Third party files
/wwwroot/third_party
/wwwroot/mockServiceWorker.js

# Ignore some files
doc/acknowledgements/attributions.md
2 changes: 1 addition & 1 deletion buildprocess/ci-deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ npm install -g yarn@^1.22.22

# Clone and build TerriaMap, using this version of TerriaJS
TERRIAJS_COMMIT_HASH=$(git rev-parse HEAD)
git clone -b main https://github.com/TerriaJS/TerriaMap.git
git clone -b msw-poc https://github.com/TerriaJS/TerriaMap.git
cd TerriaMap
TERRIAMAP_COMMIT_HASH=$(git rev-parse HEAD)
sed -i -e 's@"terriajs": ".*"@"terriajs": "'$GITHUB_REPOSITORY'#'${GITHUB_BRANCH}'"@g' package.json
Expand Down
3 changes: 2 additions & 1 deletion buildprocess/createKarmaBaseConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ module.exports = function (config) {
"/data": "/base/data",
"/images": "/base/images",
"/test": "/base/test",
"/build": "/base/build"
"/build": "/base/build",
"/mockServiceWorker.js": "/base/mockServiceWorker.js"
},

// list of files to exclude
Expand Down
6 changes: 6 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@
"karma-safari-launcher": "^1.0.0",
"karma-spec-reporter": "^0.0.36",
"minimist": "^1.2.8",
"msw": "^2.12.9",
"node-notifier": "^10.0.1",
"plugin-error": "^2.0.1",
"prettier": "2.8.8",
Expand All @@ -218,5 +219,10 @@
"prettier-check": "prettier --check .",
"build-for-node": "tsc -b tsconfig-node.json",
"prepare": "yarn build-for-node && husky install"
},
"msw": {
"workerDirectory": [
"wwwroot"
]
}
}
76 changes: 37 additions & 39 deletions test/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionJobSpec.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import { configure, reaction } from "mobx";
import { http, HttpResponse } from "msw";
import YDYRCatalogFunctionJob from "../../../../lib/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionJob";
import CsvCatalogItem from "../../../../lib/Models/Catalog/CatalogItems/CsvCatalogItem";
import CommonStrata from "../../../../lib/Models/Definition/CommonStrata";
import Terria from "../../../../lib/Models/Terria";
import { worker } from "../../../mocks/browser";
import "../../../SpecHelpers";

// For more tests see - test\Models\YDYRCatalogFunctionSpec.ts
Expand All @@ -21,43 +23,43 @@ describe("YDYRCatalogFunctionJob", function () {
let job: YDYRCatalogFunctionJob;

beforeEach(function () {
jasmine.Ajax.install();

jasmine.Ajax.stubRequest(
"http://example.com/api/v1/download/someResultKey?format=csv"
).andReturn({
responseText: `SA4_code_2016,Negative Binomial: Lower (10%),Negative Binomial: Upper (90%),Negative Binomial: Average
let logCounter = 0;
worker.use(
http.get(
"http://example.com/api/v1/download/someResultKey",
({ request }) => {
const url = new URL(request.url);
if (url.searchParams.get("format") !== "csv")
throw new Error(`Unexpected query params: ${url.search}`);

return new HttpResponse(`SA4_code_2016,Negative Binomial: Lower (10%),Negative Binomial: Upper (90%),Negative Binomial: Average
313,0,1,0
316,0,1,0
`
});

let logCounter = 0;
jasmine.Ajax.stubRequest(
"http://example.com/api/v1/status/someStatusId"
).andCallFunction((req) => {
if (logCounter < 1) {
req.respondWith({ responseText: `"Some Log ${logCounter}"` });

logCounter++;
} else {
req.respondWith({
responseText: `{"key":"someResultKey","report":{"Quality Control":"OK (Model is performing better than baseline), providing full result"}}`
});
}
});

jasmine.Ajax.stubRequest(
"build/TerriaJS/data/regionMapping.json"
).andReturn({ responseJSON: regionMapping });

jasmine.Ajax.stubRequest(
"https://tiles.terria.io/region-mapping/regionids/region_map-SA4_2016_AUST_SA4_CODE16.json"
).andReturn({ responseJSON: sa4regionCodes });

jasmine.Ajax.stubRequest(
"https://tiles.terria.io/region-mapping/regionids/region_map-FID_LGA_2011_AUST_LGA_CODE11.json"
).andReturn({ responseJSON: lga2011RegionCodes });
`);
}
),
http.get("http://example.com/api/v1/status/someStatusId", () => {
if (logCounter < 1) {
const msg = `"Some Log ${logCounter}"`;
logCounter++;
return new HttpResponse(msg);
}
return new HttpResponse(
`{"key":"someResultKey","report":{"Quality Control":"OK (Model is performing better than baseline), providing full result"}}`
);
}),
http.get("*/build/TerriaJS/data/regionMapping.json", () =>
HttpResponse.json(regionMapping)
),
http.get(
"https://tiles.terria.io/region-mapping/regionids/region_map-SA4_2016_AUST_SA4_CODE16.json",
() => HttpResponse.json(sa4regionCodes)
),
http.get(
"https://tiles.terria.io/region-mapping/regionids/region_map-FID_LGA_2011_AUST_LGA_CODE11.json",
() => HttpResponse.json(lga2011RegionCodes)
)
);

terria = new Terria();

Expand All @@ -75,10 +77,6 @@ describe("YDYRCatalogFunctionJob", function () {
job.setTrait(CommonStrata.definition, "jobId", "someStatusId");
});

afterEach(function () {
jasmine.Ajax.uninstall();
});

it("has a type & typeName", function () {
expect(YDYRCatalogFunctionJob.type).toBe("ydyr-job");
expect(job.typeName).toBe("YourDataYourRegions Job");
Expand Down
82 changes: 40 additions & 42 deletions test/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionSpec.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { configure, reaction, toJS } from "mobx";
import { http, HttpResponse } from "msw";
import addUserCatalogMember from "../../../../lib/Models/Catalog/addUserCatalogMember";
import CommonStrata from "../../../../lib/Models/Definition/CommonStrata";
import CsvCatalogItem from "../../../../lib/Models/Catalog/CatalogItems/CsvCatalogItem";
import Terria from "../../../../lib/Models/Terria";
import YDYRCatalogFunction from "../../../../lib/Models/Catalog/CatalogFunctions/YDYRCatalogFunction";
import YDYRCatalogFunctionJob from "../../../../lib/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionJob";
import { worker } from "../../../mocks/browser";
import "../../../SpecHelpers";

import regionMapping from "../../../../wwwroot/data/regionMapping.json";
Expand All @@ -24,46 +26,46 @@ describe("YDYRCatalogFunction", function () {
let ydyr: YDYRCatalogFunction;

beforeEach(async function () {
jasmine.Ajax.install();
jasmine.Ajax.stubRequest(
"http://example.com/api/v1/disaggregate.json"
).andReturn({ responseText: `"someStatusId"` });

jasmine.Ajax.stubRequest(
"http://example.com/api/v1/download/someResultKey?format=csv"
).andReturn({
responseText: `SA4_code_2016,Negative Binomial: Lower (10%),Negative Binomial: Upper (90%),Negative Binomial: Average
let logCounter = 0;
worker.use(
http.all(
"http://example.com/api/v1/disaggregate.json",
() => new HttpResponse(`"someStatusId"`)
),
http.get(
"http://example.com/api/v1/download/someResultKey",
({ request }) => {
const url = new URL(request.url);
if (url.searchParams.get("format") !== "csv")
throw new Error(`Unexpected query params: ${url.search}`);
return new HttpResponse(`SA4_code_2016,Negative Binomial: Lower (10%),Negative Binomial: Upper (90%),Negative Binomial: Average
313,0,1,0
316,0,1,0
`
});

let logCounter = 0;
jasmine.Ajax.stubRequest(
"http://example.com/api/v1/status/someStatusId"
).andCallFunction((req) => {
if (logCounter < 1) {
req.respondWith({ responseText: `"Some Log ${logCounter}"` });

logCounter++;
} else {
req.respondWith({
responseText: `{"key":"someResultKey","report":{"Quality Control":"OK (Model is performing better than baseline), providing full result"}}`
});
}
});

jasmine.Ajax.stubRequest(
"https://tiles.terria.io/region-mapping/regionids/region_map-SA4_2016_AUST_SA4_CODE16.json"
).andReturn({ responseJSON: sa4regionCodes });

jasmine.Ajax.stubRequest(
"https://tiles.terria.io/region-mapping/regionids/region_map-FID_LGA_2011_AUST_LGA_CODE11.json"
).andReturn({ responseJSON: lga2011RegionCodes });

jasmine.Ajax.stubRequest(
"build/TerriaJS/data/regionMapping.json"
).andReturn({ responseJSON: regionMapping });
`);
}
),
http.get("http://example.com/api/v1/status/someStatusId", () => {
if (logCounter < 1) {
const msg = `"Some Log ${logCounter}"`;
logCounter++;
return new HttpResponse(msg);
}
return new HttpResponse(
`{"key":"someResultKey","report":{"Quality Control":"OK (Model is performing better than baseline), providing full result"}}`
);
}),
http.get(
"https://tiles.terria.io/region-mapping/regionids/region_map-SA4_2016_AUST_SA4_CODE16.json",
() => HttpResponse.json(sa4regionCodes)
),
http.get(
"https://tiles.terria.io/region-mapping/regionids/region_map-FID_LGA_2011_AUST_LGA_CODE11.json",
() => HttpResponse.json(lga2011RegionCodes)
),
http.get("*/build/TerriaJS/data/regionMapping.json", () =>
HttpResponse.json(regionMapping)
)
);

terria = new Terria();
csv = new CsvCatalogItem("test", terria, undefined);
Expand Down Expand Up @@ -94,10 +96,6 @@ describe("YDYRCatalogFunction", function () {
});
});

afterEach(function () {
jasmine.Ajax.uninstall();
});

it("has a type & typeName", function () {
expect(YDYRCatalogFunction.type).toBe("ydyr");
expect(ydyr.typeName).toBe("YourDataYourRegions");
Expand Down
37 changes: 23 additions & 14 deletions test/Models/Catalog/CatalogGroups/SocrataCatalogGroupSpec.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import { runInAction } from "mobx";
import { http, HttpResponse } from "msw";
import Terria from "../../../../lib/Models/Terria";
import SocrataCatalogGroup from "../../../../lib/Models/Catalog/CatalogGroups/SocrataCatalogGroup";
import CatalogGroup from "../../../../lib/Models/Catalog/CatalogGroup";
import SocrataMapViewCatalogItem from "../../../../lib/Models/Catalog/CatalogItems/SocrataMapViewCatalogItem";
import { worker } from "../../../mocks/browser";

import facets from "../../../../wwwroot/test/Socrata/facets.json";
import search from "../../../../wwwroot/test/Socrata/search.json";
Expand All @@ -12,16 +14,27 @@ describe("SocrataCatalogGroup", function () {
let socrataGroup: SocrataCatalogGroup;

beforeEach(function () {
jasmine.Ajax.install();
jasmine.Ajax.stubRequest(
"http://example.com/api/catalog/v1/domains/example.com/facets?only=dataset%2Cmap"
).andReturn({
responseJSON: facets
});

jasmine.Ajax.stubRequest(
"http://example.com/api/catalog/v1?search_context=example.com&only=dataset%2Cmap&categories=Environment"
).andReturn({ responseJSON: search });
worker.use(
http.get(
"http://example.com/api/catalog/v1/domains/example.com/facets",
({ request }) => {
const url = new URL(request.url);
if (url.searchParams.get("only") !== "dataset,map")
throw new Error(`Unexpected query params: ${url.search}`);
return HttpResponse.json(facets);
}
),
http.get("http://example.com/api/catalog/v1", ({ request }) => {
const url = new URL(request.url);
if (
url.searchParams.get("search_context") !== "example.com" ||
url.searchParams.get("only") !== "dataset,map" ||
url.searchParams.get("categories") !== "Environment"
)
throw new Error(`Unexpected query params: ${url.search}`);
return HttpResponse.json(search);
})
);

terria = new Terria();
socrataGroup = new SocrataCatalogGroup("test", terria);
Expand All @@ -31,10 +44,6 @@ describe("SocrataCatalogGroup", function () {
});
});

afterEach(function () {
jasmine.Ajax.uninstall();
});

it("has a type", function () {
expect(socrataGroup.type).toBe("socrata-group");
});
Expand Down
Loading