fix: probe all non-core GeoServer layers
Extend availability checks beyond pumps and tanks so unpublished valve and reservoir layers cannot leave stale controls.
This commit is contained in:
@@ -40,13 +40,15 @@ describe("GeoServer data-dependent layer availability", () => {
|
||||
it("keeps only optional layers that contain features", async () => {
|
||||
const fetchMock = vi
|
||||
.fn()
|
||||
.mockResolvedValueOnce(new Response('<wfs:FeatureCollection numberMatched="0" />'))
|
||||
.mockResolvedValueOnce(new Response('<wfs:FeatureCollection numberMatched="0" />'))
|
||||
.mockResolvedValueOnce(new Response('<wfs:FeatureCollection numberMatched="3" />'))
|
||||
.mockResolvedValueOnce(new Response('<wfs:FeatureCollection numberMatched="0" />'));
|
||||
vi.stubGlobal("fetch", fetchMock);
|
||||
|
||||
await expect(resolveGeoServerLayerAvailability()).resolves.toEqual({
|
||||
availableSourceIds: ["pipes", "junctions", "valves", "reservoirs", "pumps"],
|
||||
emptySourceIds: ["tanks"],
|
||||
availableSourceIds: ["pipes", "junctions", "pumps"],
|
||||
emptySourceIds: ["valves", "reservoirs", "tanks"],
|
||||
failedSourceIds: []
|
||||
});
|
||||
});
|
||||
@@ -64,13 +66,15 @@ describe("GeoServer data-dependent layer availability", () => {
|
||||
const fetchMock = vi
|
||||
.fn()
|
||||
.mockResolvedValueOnce(new Response("missing", { status: 503 }))
|
||||
.mockResolvedValueOnce(new Response("<ServiceException />"))
|
||||
.mockResolvedValueOnce(new Response("missing", { status: 503 }))
|
||||
.mockResolvedValueOnce(new Response("<ServiceException />"));
|
||||
vi.stubGlobal("fetch", fetchMock);
|
||||
|
||||
await expect(resolveGeoServerLayerAvailability()).resolves.toEqual({
|
||||
availableSourceIds: ["pipes", "junctions", "valves", "reservoirs"],
|
||||
availableSourceIds: ["pipes", "junctions"],
|
||||
emptySourceIds: [],
|
||||
failedSourceIds: ["pumps", "tanks"]
|
||||
failedSourceIds: ["valves", "reservoirs", "pumps", "tanks"]
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -23,8 +23,8 @@ describe("createWaterNetworkSources", () => {
|
||||
expect(SUPPLY_LAYER_CATALOG.map((layer) => [layer.id, layer.available, layer.availability])).toEqual([
|
||||
["pipes", true, "required"],
|
||||
["junctions", true, "required"],
|
||||
["valves", true, "required"],
|
||||
["reservoirs", true, "required"],
|
||||
["valves", true, "probe"],
|
||||
["reservoirs", true, "probe"],
|
||||
["scada", true, "required"],
|
||||
["pumps", true, "probe"],
|
||||
["tanks", true, "probe"]
|
||||
|
||||
@@ -68,7 +68,7 @@ export const SUPPLY_LAYER_CATALOG = [
|
||||
sourceLayer: SOURCE_LAYERS.valves,
|
||||
geometry: "point",
|
||||
available: true,
|
||||
availability: "required",
|
||||
availability: "probe",
|
||||
label: "阀门",
|
||||
icon: "valve"
|
||||
},
|
||||
@@ -77,7 +77,7 @@ export const SUPPLY_LAYER_CATALOG = [
|
||||
sourceLayer: SOURCE_LAYERS.reservoirs,
|
||||
geometry: "point",
|
||||
available: true,
|
||||
availability: "required",
|
||||
availability: "probe",
|
||||
label: "水库",
|
||||
icon: "reservoir"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user