Skip to content

Commit 65b8da2

Browse files
committed
ListGuesserProps extends with UseResourceDefinitionOptions to fix missing props
1 parent 849377d commit 65b8da2

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

src/list/ListGuesser.spec.tsx

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
import * as React from 'react';
2+
import { Resource } from '@api-platform/api-doc-parser';
3+
import { render } from '@testing-library/react';
4+
import { AdminContext } from 'react-admin';
5+
import type { GetListResult, GetManyResult } from 'react-admin';
6+
import ListGuesser from './ListGuesser';
7+
import SchemaAnalyzerContext from '../introspection/SchemaAnalyzerContext.js';
8+
import schemaAnalyzer from '../hydra/schemaAnalyzer.js';
9+
import type {
10+
ApiPlatformAdminDataProvider,
11+
ApiPlatformAdminRecord,
12+
} from '../types.js';
13+
import { API_FIELDS_DATA } from '../__fixtures__/parsedData.js';
14+
15+
const dataProvider: ApiPlatformAdminDataProvider = {
16+
getList: <RecordType extends ApiPlatformAdminRecord>() =>
17+
Promise.resolve({ data: [], total: 0 } as GetListResult<RecordType>),
18+
getMany: <RecordType extends ApiPlatformAdminRecord>() =>
19+
Promise.resolve({ data: [] } as GetManyResult<RecordType>),
20+
getManyReference: <RecordType extends ApiPlatformAdminRecord>() =>
21+
Promise.resolve({ data: [], total: 0 } as GetManyResult<RecordType>),
22+
update: <RecordType extends ApiPlatformAdminRecord>() =>
23+
Promise.resolve({ data: { id: 'id' } } as { data: RecordType }),
24+
updateMany: () => Promise.resolve({ data: [] }),
25+
create: <RecordType extends ApiPlatformAdminRecord>() =>
26+
Promise.resolve({ data: { id: 'id' } } as { data: RecordType }),
27+
delete: <RecordType extends ApiPlatformAdminRecord>() =>
28+
Promise.resolve({ data: { id: 'id' } } as { data: RecordType }),
29+
deleteMany: () => Promise.resolve({ data: [] }),
30+
getOne: <RecordType extends ApiPlatformAdminRecord>() =>
31+
Promise.resolve({ data: { id: 'id' } } as { data: RecordType }),
32+
introspect: () =>
33+
Promise.resolve({
34+
data: {
35+
entrypoint: 'entrypoint',
36+
resources: [
37+
new Resource('books', '/books', {
38+
fields: API_FIELDS_DATA,
39+
readableFields: API_FIELDS_DATA,
40+
writableFields: API_FIELDS_DATA,
41+
parameters: [],
42+
}),
43+
],
44+
},
45+
}),
46+
subscribe: () => Promise.resolve({ data: null }),
47+
unsubscribe: () => Promise.resolve({ data: null }),
48+
};
49+
50+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
51+
describe('ListGuesser', () => {
52+
it('passing hasEdit and hasShow props are allowed', async () => {
53+
render(
54+
<AdminContext dataProvider={dataProvider}>
55+
<SchemaAnalyzerContext.Provider value={schemaAnalyzer()}>
56+
<ListGuesser hasShow={false} hasEdit={false} resource="books" />
57+
</SchemaAnalyzerContext.Provider>
58+
</AdminContext>,
59+
);
60+
});
61+
});

0 commit comments

Comments
 (0)