[TEST] Covering useDeleteOne relations optimistic cache behavior (#10238)
## Introduction Added coverage on the `useDeleteOneRecord` hooks, especially its optimistic behavior feature. Introduced a new testing tool `InMemoryTestingCacheInstance` that has builtin very basic expectors in order to avoid future duplication when covering others record hooks `update, create, destroy` etc etc ## Notes Added few comments in this PR regarding some builtin functions I've created around companies and people mocked object model and that I think could be cool to spread and centralize within a dedicated "class template" Also put in light that unless I'm mistaken some tests are running on `RecordNode` and not `RecordObject` Took few directions on my own that as I always I would suggestion nor remarks on them ! Let me know ## Misc - Should we refactor `useDeleteOneRecord` tests to follow `eachTesting` pattern ? => I feel like this is inappropriate as this hooks is already high level, the only plus value would be less tests code despite readability IMO
This commit is contained in:
@ -4,14 +4,14 @@ import { renderHook, waitFor } from '@testing-library/react';
|
||||
import { act } from 'react';
|
||||
import { getJestMetadataAndApolloMocksAndActionMenuWrapper } from '~/testing/jest/getJestMetadataAndApolloMocksAndActionMenuWrapper';
|
||||
import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems';
|
||||
import { getPeopleMock } from '~/testing/mock-data/people';
|
||||
import { getPeopleRecordConnectionMock } from '~/testing/mock-data/people';
|
||||
import { useDeleteMultipleRecordsAction } from '../useDeleteMultipleRecordsAction';
|
||||
|
||||
const personMockObjectMetadataItem = generatedMockObjectMetadataItems.find(
|
||||
(item) => item.nameSingular === 'person',
|
||||
)!;
|
||||
|
||||
const peopleMock = getPeopleMock();
|
||||
const peopleMock = getPeopleRecordConnectionMock();
|
||||
|
||||
const deleteManyRecordsMock = jest.fn();
|
||||
const resetTableRowSelectionMock = jest.fn();
|
||||
|
||||
@ -9,7 +9,7 @@ import {
|
||||
getJestMetadataAndApolloMocksAndActionMenuWrapper,
|
||||
} from '~/testing/jest/getJestMetadataAndApolloMocksAndActionMenuWrapper';
|
||||
import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems';
|
||||
import { getPeopleMock } from '~/testing/mock-data/people';
|
||||
import { getPeopleRecordConnectionMock } from '~/testing/mock-data/people';
|
||||
import { useDestroyMultipleRecordsAction } from '../useDestroyMultipleRecordsAction';
|
||||
|
||||
const personMockObjectMetadataItem = generatedMockObjectMetadataItems.find(
|
||||
@ -20,10 +20,12 @@ const personMockObjectMetadataItemDeletedAtField =
|
||||
if (personMockObjectMetadataItemDeletedAtField === undefined)
|
||||
throw new Error('Should never occur');
|
||||
|
||||
const [firstPeopleMock, secondPeopleMock] = getPeopleMock().map((record) => ({
|
||||
...record,
|
||||
deletedAt: new Date().toISOString(),
|
||||
}));
|
||||
const [firstPeopleMock, secondPeopleMock] = getPeopleRecordConnectionMock().map(
|
||||
(record) => ({
|
||||
...record,
|
||||
deletedAt: new Date().toISOString(),
|
||||
}),
|
||||
);
|
||||
|
||||
const destroyManyRecordsMock = jest.fn();
|
||||
const resetTableRowSelectionMock = jest.fn();
|
||||
|
||||
@ -3,14 +3,14 @@ import { renderHook, waitFor } from '@testing-library/react';
|
||||
import { act } from 'react';
|
||||
import { getJestMetadataAndApolloMocksAndActionMenuWrapper } from '~/testing/jest/getJestMetadataAndApolloMocksAndActionMenuWrapper';
|
||||
import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems';
|
||||
import { getPeopleMock } from '~/testing/mock-data/people';
|
||||
import { getPeopleRecordConnectionMock } from '~/testing/mock-data/people';
|
||||
import { useExportMultipleRecordsAction } from '../useExportMultipleRecordsAction';
|
||||
|
||||
const personMockObjectMetadataItem = generatedMockObjectMetadataItems.find(
|
||||
(item) => item.nameSingular === 'person',
|
||||
)!;
|
||||
|
||||
const peopleMock = getPeopleMock();
|
||||
const peopleMock = getPeopleRecordConnectionMock();
|
||||
|
||||
const downloadMock = jest.fn();
|
||||
|
||||
|
||||
@ -6,14 +6,14 @@ import {
|
||||
getJestMetadataAndApolloMocksAndActionMenuWrapper,
|
||||
} from '~/testing/jest/getJestMetadataAndApolloMocksAndActionMenuWrapper';
|
||||
import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems';
|
||||
import { getPeopleMock } from '~/testing/mock-data/people';
|
||||
import { getPeopleRecordConnectionMock } from '~/testing/mock-data/people';
|
||||
import { useAddToFavoritesSingleRecordAction } from '../useAddToFavoritesSingleRecordAction';
|
||||
|
||||
const personMockObjectMetadataItem = generatedMockObjectMetadataItems.find(
|
||||
(item) => item.nameSingular === 'person',
|
||||
)!;
|
||||
|
||||
const peopleMock = getPeopleMock();
|
||||
const peopleMock = getPeopleRecordConnectionMock();
|
||||
|
||||
const favoritesMock = [
|
||||
{
|
||||
|
||||
@ -3,14 +3,14 @@ import { renderHook } from '@testing-library/react';
|
||||
import { act } from 'react';
|
||||
import { getJestMetadataAndApolloMocksAndActionMenuWrapper } from '~/testing/jest/getJestMetadataAndApolloMocksAndActionMenuWrapper';
|
||||
import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems';
|
||||
import { getPeopleMock } from '~/testing/mock-data/people';
|
||||
import { getPeopleRecordConnectionMock } from '~/testing/mock-data/people';
|
||||
import { useDeleteSingleRecordAction } from '../useDeleteSingleRecordAction';
|
||||
|
||||
const personMockObjectMetadataItem = generatedMockObjectMetadataItems.find(
|
||||
(item) => item.nameSingular === 'person',
|
||||
)!;
|
||||
|
||||
const peopleMock = getPeopleMock();
|
||||
const peopleMock = getPeopleRecordConnectionMock();
|
||||
|
||||
const deleteOneRecordMock = jest.fn();
|
||||
|
||||
|
||||
@ -6,14 +6,14 @@ import {
|
||||
getJestMetadataAndApolloMocksAndActionMenuWrapper,
|
||||
} from '~/testing/jest/getJestMetadataAndApolloMocksAndActionMenuWrapper';
|
||||
import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems';
|
||||
import { getPeopleMock } from '~/testing/mock-data/people';
|
||||
import { getPeopleRecordConnectionMock } from '~/testing/mock-data/people';
|
||||
import { useRemoveFromFavoritesSingleRecordAction } from '../useRemoveFromFavoritesSingleRecordAction';
|
||||
|
||||
const personMockObjectMetadataItem = generatedMockObjectMetadataItems.find(
|
||||
(item) => item.nameSingular === 'person',
|
||||
)!;
|
||||
|
||||
const peopleMock = getPeopleMock();
|
||||
const peopleMock = getPeopleRecordConnectionMock();
|
||||
|
||||
const favoritesMock = [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user