Fmt
This commit is contained in:
parent
63713c3a2b
commit
bd6b511f16
17 changed files with 544 additions and 377 deletions
|
|
@ -54,7 +54,10 @@ describe('useHexagonSelection', () => {
|
|||
requests.push(`${url.pathname}${url.search}`);
|
||||
|
||||
if (url.pathname === '/api/postcode-stats') {
|
||||
return Promise.resolve(jsonResponse(stats(url.searchParams.has('filters') ? 0 : 4)));
|
||||
const emptyPostcode = url.searchParams.get('postcode') === 'EMPTY 1AA';
|
||||
return Promise.resolve(
|
||||
jsonResponse(stats(url.searchParams.has('filters') || emptyPostcode ? 0 : 4))
|
||||
);
|
||||
}
|
||||
|
||||
if (url.pathname === '/api/hexagon-stats') {
|
||||
|
|
@ -91,12 +94,15 @@ describe('useHexagonSelection', () => {
|
|||
id: 'SW1A 1AA',
|
||||
type: 'postcode',
|
||||
resolution: 9,
|
||||
lockedResolution: true,
|
||||
});
|
||||
});
|
||||
|
||||
expect(result.current.selectedPostcodeGeometry).toBe(postcodeGeometry);
|
||||
expect(result.current.areaStats?.count).toBe(0);
|
||||
expect(result.current.unfilteredAreaCount).toBe(4);
|
||||
await waitFor(() => {
|
||||
expect(result.current.areaStats?.count).toBe(0);
|
||||
expect(result.current.unfilteredAreaCount).toBe(4);
|
||||
});
|
||||
expect(requests.some((url) => url.startsWith('/api/hexagon-stats'))).toBe(false);
|
||||
});
|
||||
|
||||
|
|
@ -124,6 +130,7 @@ describe('useHexagonSelection', () => {
|
|||
id: 'SW1A 1AA',
|
||||
type: 'postcode',
|
||||
resolution: 9,
|
||||
lockedResolution: true,
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -131,4 +138,65 @@ describe('useHexagonSelection', () => {
|
|||
expect(result.current.unfilteredAreaCount).toBeNull();
|
||||
expect(requests.some((url) => url.startsWith('/api/hexagon-stats'))).toBe(false);
|
||||
});
|
||||
|
||||
it('keeps an empty postcode search selected instead of widening to hexagons', async () => {
|
||||
const { result } = renderHook(() =>
|
||||
useHexagonSelection({
|
||||
filters: {},
|
||||
features,
|
||||
hexagonData: [],
|
||||
resolution: 9,
|
||||
usePostcodeView: true,
|
||||
travelTimeEntries: [],
|
||||
})
|
||||
);
|
||||
|
||||
act(() => {
|
||||
result.current.handleLocationSearch('EMPTY 1AA', postcodeGeometry, 51.505, -0.115);
|
||||
});
|
||||
|
||||
await waitFor(() => {
|
||||
expect(result.current.areaStats?.count).toBe(0);
|
||||
});
|
||||
|
||||
expect(result.current.selectedHexagon).toEqual({
|
||||
id: 'EMPTY 1AA',
|
||||
type: 'postcode',
|
||||
resolution: 9,
|
||||
lockedResolution: true,
|
||||
});
|
||||
expect(result.current.selectedPostcodeGeometry).toBe(postcodeGeometry);
|
||||
expect(requests.some((url) => url.startsWith('/api/hexagon-stats'))).toBe(false);
|
||||
});
|
||||
|
||||
it('does not convert a searched postcode back to a hexagon while the map reaches postcode zoom', async () => {
|
||||
const { result } = renderHook(() =>
|
||||
useHexagonSelection({
|
||||
filters: {},
|
||||
features,
|
||||
hexagonData: [],
|
||||
resolution: 9,
|
||||
usePostcodeView: false,
|
||||
travelTimeEntries: [],
|
||||
})
|
||||
);
|
||||
|
||||
act(() => {
|
||||
result.current.handleLocationSearch('SW1A 1AA', postcodeGeometry, 51.505, -0.115);
|
||||
});
|
||||
|
||||
await waitFor(() => {
|
||||
expect(result.current.areaStats?.count).toBe(4);
|
||||
});
|
||||
|
||||
expect(result.current.selectedHexagon).toEqual({
|
||||
id: 'SW1A 1AA',
|
||||
type: 'postcode',
|
||||
resolution: 9,
|
||||
lockedResolution: true,
|
||||
});
|
||||
expect(result.current.selectedPostcodeGeometry).toBe(postcodeGeometry);
|
||||
expect(requests.some((url) => url.startsWith('/api/postcode/'))).toBe(false);
|
||||
expect(requests.some((url) => url.startsWith('/api/hexagon-stats'))).toBe(false);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue