@itwin/map-layers-formats 4.1.0-dev.5 → 4.1.0-dev.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/operation/build/all.log +0 -2
- package/.rush/temp/operation/build/state.json +1 -1
- package/.rush/temp/operation/cover/all.log +12 -7
- package/.rush/temp/operation/cover/state.json +1 -1
- package/.rush/temp/operation/docs/all.log +1 -1
- package/.rush/temp/operation/docs/state.json +1 -1
- package/.rush/temp/package-deps_build.json +9 -9
- package/.rush/temp/package-deps_cover.json +9 -9
- package/.rush/temp/package-deps_docs.json +9 -9
- package/.rush/temp/shrinkwrap-deps.json +70 -80
- package/CHANGELOG.json +57 -0
- package/CHANGELOG.md +44 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js +3 -0
- package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts +3 -0
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js +49 -11
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js +3 -3
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js +139 -7
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/Mocks.d.ts.map +1 -1
- package/lib/cjs/test/ArcGisFeature/Mocks.js +1 -1
- package/lib/cjs/test/ArcGisFeature/Mocks.js.map +1 -1
- package/lib/cjs/test/coverage/.nyc_output/6abfdfec-4bea-416d-b808-b4b6a26933a0.json +1 -0
- package/lib/cjs/test/coverage/.nyc_output/processinfo/6abfdfec-4bea-416d-b808-b4b6a26933a0.json +1 -0
- package/lib/cjs/test/coverage/.nyc_output/processinfo/e3a863c9-d93d-496e-88fc-7e67e520c8b6.json +1 -0
- package/lib/cjs/test/coverage/.nyc_output/processinfo/index.json +1 -1
- package/lib/cjs/test/coverage/cobertura-coverage.xml +294 -257
- package/lib/cjs/test/coverage/lcov-report/index.html +18 -18
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureFormat.ts.html +21 -9
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureJSON.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeaturePBF.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureProvider.ts.html +202 -76
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureQuery.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureReader.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureRenderer.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureResponse.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisSymbologyRenderer.ts.html +13 -13
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/index.html +26 -26
- package/lib/cjs/test/coverage/lcov-report/src/index.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/map-layers-formats.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/mapLayersFormats.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov.info +429 -388
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js +4 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts +3 -0
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js +49 -11
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js +3 -3
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js +140 -8
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/Mocks.d.ts.map +1 -1
- package/lib/esm/test/ArcGisFeature/Mocks.js +1 -1
- package/lib/esm/test/ArcGisFeature/Mocks.js.map +1 -1
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/test/junit_results.xml +61 -51
- package/map-layers-formats.build.cache.log +2 -0
- package/map-layers-formats.cover.log +103 -0
- package/{map-layers-formats.build.log → map-layers-formats.docs.log} +1 -1
- package/map-layers-formats.lint.error.log +1 -0
- package/map-layers-formats.lint.log +2 -0
- package/package.json +12 -12
- package/src/ArcGisFeature/ArcGisFeatureFormat.ts +5 -1
- package/src/ArcGisFeature/ArcGisFeatureProvider.ts +53 -11
- package/src/ArcGisFeature/ArcGisSymbologyRenderer.ts +3 -3
- package/src/test/ArcGisFeature/ArcGisFeatureProvider.test.ts +180 -8
- package/src/test/ArcGisFeature/Mocks.ts +1 -1
- package/lib/cjs/test/coverage/.nyc_output/97a409cb-0529-4dd9-9185-4c9a271c836a.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/processinfo/530a1eef-b22f-4875-a81e-1eabc667f480.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/processinfo/97a409cb-0529-4dd9-9185-4c9a271c836a.json +0 -1
- /package/lib/cjs/test/coverage/.nyc_output/{530a1eef-b22f-4875-a81e-1eabc667f480.json → e3a863c9-d93d-496e-88fc-7e67e520c8b6.json} +0 -0
|
@@ -13,19 +13,24 @@ import { NewYorkDataset } from "./NewYorkDataset";
|
|
|
13
13
|
import { base64StringToUint8Array, ByteStream, Logger } from "@itwin/core-bentley";
|
|
14
14
|
import { PhillyLandmarksDataset } from "./PhillyLandmarksDataset";
|
|
15
15
|
import { ArcGisFeatureResponse } from "../../ArcGisFeature/ArcGisFeatureResponse";
|
|
16
|
-
import { Point3d } from "@itwin/core-geometry";
|
|
16
|
+
import { Angle, Point3d } from "@itwin/core-geometry";
|
|
17
17
|
import { ArcGisFeaturePBF } from "../../ArcGisFeature/ArcGisFeaturePBF";
|
|
18
18
|
import { ArcGisFeatureJSON } from "../../ArcGisFeature/ArcGisFeatureJSON";
|
|
19
19
|
const expect = chai.expect;
|
|
20
20
|
chai.use(chaiAsPromised);
|
|
21
|
-
const esriFeatureSampleSource = { name: "dummyFeatureLayer", url: "https://dummy.com", formatId: ArcGisFeatureMapLayerFormat.formatId };
|
|
21
|
+
const esriFeatureSampleSource = { name: "dummyFeatureLayer", url: "https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer", formatId: ArcGisFeatureMapLayerFormat.formatId };
|
|
22
22
|
const pngTransparent1x1 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";
|
|
23
23
|
describe("ArcGisFeatureProvider", () => {
|
|
24
24
|
const sandbox = sinon.createSandbox();
|
|
25
|
+
let fetchStub;
|
|
26
|
+
beforeEach(async () => {
|
|
27
|
+
// Make sure no call to fetch is made, other it creates leaks
|
|
28
|
+
fetchStub = sandbox.stub(ArcGISImageryProvider.prototype, "fetch");
|
|
29
|
+
});
|
|
25
30
|
afterEach(async () => {
|
|
26
31
|
sandbox.restore();
|
|
27
32
|
});
|
|
28
|
-
it("should initialize with valid
|
|
33
|
+
it("should initialize with valid service metadata", async () => {
|
|
29
34
|
sandbox.stub(ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
30
35
|
return { accessTokenRequired: false, content: NewYorkDataset.serviceCapabilities };
|
|
31
36
|
});
|
|
@@ -38,6 +43,133 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
38
43
|
expect(provider._minDepthFromLod).to.equals(11);
|
|
39
44
|
expect(provider._maxDepthFromLod).to.equals(22);
|
|
40
45
|
});
|
|
46
|
+
it("should initialize and set cartoRange without making extra extent request", async () => {
|
|
47
|
+
sandbox.stub(ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
48
|
+
return { accessTokenRequired: false, content: NewYorkDataset.serviceCapabilities };
|
|
49
|
+
});
|
|
50
|
+
sandbox.stub(ArcGisFeatureProvider.prototype, "getLayerMetadata").callsFake(async function _(_layerId) {
|
|
51
|
+
return NewYorkDataset.streetsLayerCapabilities;
|
|
52
|
+
});
|
|
53
|
+
const setCartoSpy = sandbox.spy(ArcGisFeatureProvider.prototype, "setCartoRangeFromExtentJson");
|
|
54
|
+
const fetchLayerExtentSpy = sandbox.spy(ArcGisFeatureProvider.prototype, "fetchLayerExtent");
|
|
55
|
+
const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);
|
|
56
|
+
const provider = new ArcGisFeatureProvider(settings);
|
|
57
|
+
await provider.initialize();
|
|
58
|
+
expect(setCartoSpy.called).to.be.true;
|
|
59
|
+
expect(setCartoSpy.args[0][0]).to.be.equals(NewYorkDataset.streetsLayerCapabilities.extent);
|
|
60
|
+
expect(fetchLayerExtentSpy.called).to.be.false;
|
|
61
|
+
});
|
|
62
|
+
it("should make an extra extent request when none available in layer metadata", async () => {
|
|
63
|
+
sandbox.stub(ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
64
|
+
return { accessTokenRequired: false, content: NewYorkDataset.serviceCapabilities };
|
|
65
|
+
});
|
|
66
|
+
const setCartoSpy = sandbox.spy(ArcGisFeatureProvider.prototype, "setCartoRangeFromExtentJson");
|
|
67
|
+
const layerExtent = { ...NewYorkDataset.streetsLayerCapabilities.extent };
|
|
68
|
+
const fetchLayerExtentStub = sandbox.stub(ArcGisFeatureProvider.prototype, "fetchLayerExtent").callsFake(async function _(_layerId) {
|
|
69
|
+
return layerExtent;
|
|
70
|
+
});
|
|
71
|
+
const layerCapabilitiesNoExtent = { ...NewYorkDataset.streetsLayerCapabilities, extent: null };
|
|
72
|
+
sandbox.stub(ArcGisFeatureProvider.prototype, "getLayerMetadata").callsFake(async function _(_layerId) {
|
|
73
|
+
return layerCapabilitiesNoExtent;
|
|
74
|
+
});
|
|
75
|
+
const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);
|
|
76
|
+
const provider = new ArcGisFeatureProvider(settings);
|
|
77
|
+
await provider.initialize();
|
|
78
|
+
expect(fetchLayerExtentStub.called).to.be.true;
|
|
79
|
+
expect(setCartoSpy.called).to.be.true;
|
|
80
|
+
expect(setCartoSpy.args[0][0]).to.be.equals(layerExtent);
|
|
81
|
+
});
|
|
82
|
+
it("should make an extra extent request when none available in layer metadata", async () => {
|
|
83
|
+
sandbox.stub(ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
84
|
+
return { accessTokenRequired: false, content: NewYorkDataset.serviceCapabilities };
|
|
85
|
+
});
|
|
86
|
+
const setCartoSpy = sandbox.spy(ArcGisFeatureProvider.prototype, "setCartoRangeFromExtentJson");
|
|
87
|
+
const layerExtent = { ...NewYorkDataset.streetsLayerCapabilities.extent };
|
|
88
|
+
const fetchLayerExtentStub = sandbox.stub(ArcGisFeatureProvider.prototype, "fetchLayerExtent").callsFake(async function _(_layerId) {
|
|
89
|
+
return layerExtent;
|
|
90
|
+
});
|
|
91
|
+
const layerExtentBadSrs = { ...NewYorkDataset.streetsLayerCapabilities };
|
|
92
|
+
layerExtentBadSrs.extent.spatialReference.wkid = 1234;
|
|
93
|
+
layerExtentBadSrs.extent.spatialReference.latestWkid = 1234;
|
|
94
|
+
sandbox.stub(ArcGisFeatureProvider.prototype, "getLayerMetadata").callsFake(async function _(_layerId) {
|
|
95
|
+
return layerExtentBadSrs;
|
|
96
|
+
});
|
|
97
|
+
const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);
|
|
98
|
+
const provider = new ArcGisFeatureProvider(settings);
|
|
99
|
+
await provider.initialize();
|
|
100
|
+
expect(fetchLayerExtentStub.called).to.be.true;
|
|
101
|
+
expect(setCartoSpy.called).to.be.true;
|
|
102
|
+
expect(setCartoSpy.args[0][0]).to.be.equals(layerExtent);
|
|
103
|
+
});
|
|
104
|
+
it("should set cartoRange from Extent json", async () => {
|
|
105
|
+
const newYorkLayerExtent = NewYorkDataset.streetsLayerCapabilities.extent;
|
|
106
|
+
const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);
|
|
107
|
+
const provider = new ArcGisFeatureProvider(settings);
|
|
108
|
+
const west = provider.getEPSG4326Lon(newYorkLayerExtent.xmin);
|
|
109
|
+
const south = provider.getEPSG4326Lat(newYorkLayerExtent.ymin);
|
|
110
|
+
const east = provider.getEPSG4326Lon(newYorkLayerExtent.xmax);
|
|
111
|
+
const north = provider.getEPSG4326Lat(newYorkLayerExtent.ymax);
|
|
112
|
+
provider.setCartoRangeFromExtentJson(newYorkLayerExtent);
|
|
113
|
+
expect(provider.cartoRange).to.be.not.undefined;
|
|
114
|
+
const delta = 0.0000001;
|
|
115
|
+
expect(provider.cartoRange.west * Angle.degreesPerRadian).to.approximately(west, delta);
|
|
116
|
+
expect(provider.cartoRange.south * Angle.degreesPerRadian).to.approximately(south, delta);
|
|
117
|
+
expect(provider.cartoRange.east * Angle.degreesPerRadian).to.approximately(east, delta);
|
|
118
|
+
expect(provider.cartoRange.north * Angle.degreesPerRadian).to.approximately(north, delta);
|
|
119
|
+
});
|
|
120
|
+
it("should compose proper request to get extent", async () => {
|
|
121
|
+
fetchStub.restore(); // fetch is always stubbed by default, restore and provide our own stub
|
|
122
|
+
sandbox.stub(ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
123
|
+
return { accessTokenRequired: false, content: NewYorkDataset.serviceCapabilities };
|
|
124
|
+
});
|
|
125
|
+
const layerCapabilitiesNoExtent = { ...NewYorkDataset.streetsLayerCapabilities };
|
|
126
|
+
sandbox.stub(ArcGisFeatureProvider.prototype, "getLayerMetadata").callsFake(async function _(_layerId) {
|
|
127
|
+
return layerCapabilitiesNoExtent;
|
|
128
|
+
});
|
|
129
|
+
const referenceExtent = { extent: NewYorkDataset.streetsLayerCapabilities.extent };
|
|
130
|
+
const stub = sandbox.stub(ArcGISImageryProvider.prototype, "fetch").callsFake(async function _(_url, _options) {
|
|
131
|
+
const test = {
|
|
132
|
+
headers: { "content-type": "json" },
|
|
133
|
+
json: async () => {
|
|
134
|
+
return referenceExtent;
|
|
135
|
+
},
|
|
136
|
+
status: 200,
|
|
137
|
+
}; // By using unknown type, I can define parts of Response I really need
|
|
138
|
+
return test;
|
|
139
|
+
});
|
|
140
|
+
let layerId = 0;
|
|
141
|
+
let expectedUrl = `https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/${layerId}/query?where=1%3D1&outSR=3857&returnExtentOnly=true&f=json`;
|
|
142
|
+
let cachedExtent = ArcGisFeatureProvider._extentCache.get(expectedUrl);
|
|
143
|
+
expect(cachedExtent).to.be.undefined;
|
|
144
|
+
const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);
|
|
145
|
+
const provider = new ArcGisFeatureProvider(settings);
|
|
146
|
+
await provider.initialize();
|
|
147
|
+
let fetchExtent = await provider.fetchLayerExtent();
|
|
148
|
+
expect(fetchExtent).to.equals(referenceExtent.extent);
|
|
149
|
+
expect(stub.getCalls().length).to.equals(1);
|
|
150
|
+
expect(stub.args[0][0].toString()).to.be.equals(expectedUrl);
|
|
151
|
+
// Check if entry has been created in cache
|
|
152
|
+
cachedExtent = ArcGisFeatureProvider._extentCache.get(expectedUrl);
|
|
153
|
+
expect(cachedExtent).to.be.not.undefined;
|
|
154
|
+
expect(cachedExtent).to.equals(referenceExtent);
|
|
155
|
+
// Make sure cache is used
|
|
156
|
+
await provider.fetchLayerExtent();
|
|
157
|
+
expect(stub.getCalls().length).to.equals(1);
|
|
158
|
+
// Force a different layerId, and check a new request has been made
|
|
159
|
+
layerId = 2;
|
|
160
|
+
expectedUrl = `https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/${layerId}/query?where=1%3D1&outSR=3857&returnExtentOnly=true&f=json`;
|
|
161
|
+
cachedExtent = ArcGisFeatureProvider._extentCache.get(expectedUrl);
|
|
162
|
+
expect(cachedExtent).to.be.undefined;
|
|
163
|
+
provider._layerId = layerId;
|
|
164
|
+
fetchExtent = await provider.fetchLayerExtent();
|
|
165
|
+
expect(fetchExtent).to.equals(referenceExtent.extent);
|
|
166
|
+
expect(stub.getCalls().length).to.equals(2);
|
|
167
|
+
expect(stub.args[1][0].toString()).to.be.equals(expectedUrl);
|
|
168
|
+
// check cache has been updated with a new entry
|
|
169
|
+
cachedExtent = ArcGisFeatureProvider._extentCache.get(expectedUrl);
|
|
170
|
+
expect(cachedExtent).to.be.not.undefined;
|
|
171
|
+
expect(cachedExtent).to.equals(referenceExtent);
|
|
172
|
+
});
|
|
41
173
|
it("should not initialize with no service metadata", async () => {
|
|
42
174
|
sandbox.stub(ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
43
175
|
return undefined;
|
|
@@ -231,7 +363,7 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
231
363
|
latestWkid: 3857,
|
|
232
364
|
},
|
|
233
365
|
};
|
|
234
|
-
expect(url?.url).to.equals(
|
|
366
|
+
expect(url?.url).to.equals("https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100");
|
|
235
367
|
expect(url?.envelope?.xmin).to.be.closeTo(extent.xmin, 0.01);
|
|
236
368
|
expect(url?.envelope?.ymin).to.be.closeTo(extent.ymin, 0.01);
|
|
237
369
|
expect(url?.envelope?.xmax).to.be.closeTo(extent.xmax, 0.01);
|
|
@@ -250,7 +382,7 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
250
382
|
const provider2 = new ArcGisFeatureProvider(settings);
|
|
251
383
|
await provider2.initialize();
|
|
252
384
|
url = provider2.constructFeatureUrl(0, 0, 0, "PBF");
|
|
253
|
-
expect(url?.url).to.equals(
|
|
385
|
+
expect(url?.url).to.equals("https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100&quantizationParameters=%7B%22mode%22%3A%22view%22%2C%22originPosition%22%3A%22upperLeft%22%2C%22tolerance%22%3A78271.516953125%2C%22extent%22%3A%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D%7D");
|
|
254
386
|
expect(url?.envelope?.xmin).to.be.closeTo(extent.xmin, 0.01);
|
|
255
387
|
expect(url?.envelope?.ymin).to.be.closeTo(extent.ymin, 0.01);
|
|
256
388
|
expect(url?.envelope?.xmax).to.be.closeTo(extent.xmax, 0.01);
|
|
@@ -274,7 +406,7 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
274
406
|
const provider3 = new ArcGisFeatureProvider(settings);
|
|
275
407
|
await provider3.initialize();
|
|
276
408
|
url = provider3.constructFeatureUrl(0, 0, 0, "PBF", overrideGeom);
|
|
277
|
-
expect(url?.url).to.equals(
|
|
409
|
+
expect(url?.url).to.equals("https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-50%2C%22ymin%22%3A-50%2C%22xmax%22%3A50%2C%22ymax%22%3A50%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100&quantizationParameters=%7B%22mode%22%3A%22view%22%2C%22originPosition%22%3A%22upperLeft%22%2C%22tolerance%22%3A78271.516953125%2C%22extent%22%3A%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D%7D");
|
|
278
410
|
expect(url?.envelope?.xmin).to.be.closeTo(overrideGeom.geom.xmin, 0.01);
|
|
279
411
|
expect(url?.envelope?.ymin).to.be.closeTo(overrideGeom.geom.ymin, 0.01);
|
|
280
412
|
expect(url?.envelope?.xmax).to.be.closeTo(overrideGeom.geom.xmax, 0.01);
|
|
@@ -283,7 +415,7 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
283
415
|
expect(url?.envelope?.spatialReference.latestWkid).to.be.equal(overrideGeom.geom.spatialReference.latestWkid);
|
|
284
416
|
// Now test with a different tolerance value
|
|
285
417
|
url = provider3.constructFeatureUrl(0, 0, 0, "PBF", overrideGeom, undefined, 10);
|
|
286
|
-
expect(url?.url).to.equals(
|
|
418
|
+
expect(url?.url).to.equals("https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-50%2C%22ymin%22%3A-50%2C%22xmax%22%3A50%2C%22ymax%22%3A50%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100&quantizationParameters=%7B%22mode%22%3A%22view%22%2C%22originPosition%22%3A%22upperLeft%22%2C%22tolerance%22%3A78271.516953125%2C%22extent%22%3A%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D%7D&distance=782715.16953125");
|
|
287
419
|
expect(url?.envelope?.xmin).to.be.closeTo(overrideGeom.geom.xmin, 0.01);
|
|
288
420
|
expect(url?.envelope?.ymin).to.be.closeTo(overrideGeom.geom.ymin, 0.01);
|
|
289
421
|
expect(url?.envelope?.xmax).to.be.closeTo(overrideGeom.geom.xmax, 0.01);
|
|
@@ -335,6 +467,7 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
335
467
|
sandbox.stub(ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
336
468
|
return { accessTokenRequired: false, content: { currentVersion: 11, capabilities: "Query" } };
|
|
337
469
|
});
|
|
470
|
+
fetchStub.restore(); // fetch is always stubbed by default, restore and provide our own stub
|
|
338
471
|
sandbox.stub(ArcGISImageryProvider.prototype, "fetch").callsFake(async function _(_url, _options) {
|
|
339
472
|
const test = {
|
|
340
473
|
headers: { "content-type": "pbf" },
|
|
@@ -662,7 +795,6 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
662
795
|
sandbox.stub(ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
663
796
|
return { accessTokenRequired: false, content: { capabilities: "Query" } };
|
|
664
797
|
});
|
|
665
|
-
const fetchStub = sandbox.stub(ArcGISImageryProvider.prototype, "fetch");
|
|
666
798
|
sandbox.stub(ArcGisFeatureProvider.prototype, "constructFeatureUrl").callsFake(function _(_row, _column, _zoomLevel, _format, _geomOverride, _outFields, _tolerance, _returnGeometry) {
|
|
667
799
|
return { url: settings.url };
|
|
668
800
|
});
|