Skip to content

Commit bd21d8c

Browse files
authored
feat: Normalize merges entities, entitymeta, indexes (#915)
1 parent aa5f80d commit bd21d8c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1220
-363
lines changed

packages/core/src/react-integration/__tests__/integration-endpoint.web.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { act } from '@testing-library/react-hooks';
1717
// relative imports to avoid circular dependency in tsconfig references
1818
import { SimpleRecord, schema, Entity } from '@rest-hooks/normalizr';
1919
import { Endpoint } from '@rest-hooks/endpoint';
20+
import { useContext } from 'react';
2021

2122
import {
2223
makeRenderRestHook,
@@ -33,6 +34,7 @@ import {
3334
paginatedSecondPage,
3435
valuesFixture,
3536
} from '../test-fixtures';
37+
import { StateContext } from '../context';
3638

3739
function onError(e: any) {
3840
e.preventDefault();
@@ -68,6 +70,8 @@ for (const makeProvider of [makeCacheProvider, makeExternalCacheProvider]) {
6870
.reply(204, '')
6971
.delete(`/article/${payload.id}`)
7072
.reply(200, {})
73+
.delete(`/user/23`)
74+
.reply(204, '')
7175
.get(`/article-cooler/0`)
7276
.reply(403, {})
7377
.get(`/article-cooler/666`)
@@ -356,7 +360,7 @@ for (const makeProvider of [makeCacheProvider, makeExternalCacheProvider]) {
356360
await act(async () => {
357361
await del({ id: temppayload.id });
358362
});
359-
//expect(throws.length).toBe(2); TODO: delete seems to have receive process multiple times. we suspect this is because of test+act integration.
363+
expect(throws.length).toBeGreaterThanOrEqual(2); //TODO: delete seems to have receive process multiple times. we suspect this is because of test+act integration.
360364
await waitForNextUpdate();
361365
await throws[throws.length - 1];
362366
[data, del] = result.current;
@@ -852,6 +856,8 @@ for (const makeProvider of [makeCacheProvider, makeExternalCacheProvider]) {
852856
username: 'charlie',
853857
}),
854858
fetch: useFetcher(IndexedUserResource.detail()),
859+
del: useFetcher(IndexedUserResource.delete()),
860+
state: useContext(StateContext),
855861
};
856862
});
857863
expect(result.current).toBeUndefined();
@@ -875,6 +881,10 @@ for (const makeProvider of [makeCacheProvider, makeExternalCacheProvider]) {
875881
expect(charlie?.username).toBe('charlie');
876882
expect(charlie).toMatchSnapshot();
877883
expect(result.current.bob).toBeUndefined();
884+
885+
// deletes should roll through to indexes
886+
await result.current.del({ id: '23' });
887+
expect(result.current.charlie).toBeUndefined();
878888
});
879889
});
880890
});

packages/core/src/state/__tests__/merge.tsx

Lines changed: 0 additions & 216 deletions
This file was deleted.

packages/core/src/state/merge/isMergeable.ts

Lines changed: 0 additions & 30 deletions
This file was deleted.

packages/core/src/state/merge/mergeDeepCopy.ts

Lines changed: 0 additions & 66 deletions
This file was deleted.

0 commit comments

Comments
 (0)