Skip to content

Commit 96899d3

Browse files
committed
adapt test to the new ListGuesser
1 parent ed24389 commit 96899d3

File tree

1 file changed

+51
-46
lines changed

1 file changed

+51
-46
lines changed

packages/ra-ui-materialui/src/list/ListGuesser.spec.tsx

Lines changed: 51 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,63 @@
11
import * as React from 'react';
22
import expect from 'expect';
3-
import { render, screen, waitFor } from '@testing-library/react';
4-
import { CoreAdminContext, testDataProvider } from 'ra-core';
5-
6-
import { ListGuesser } from './ListGuesser';
7-
import { ThemeProvider } from '../theme/ThemeProvider';
3+
import { fireEvent, render, screen } from '@testing-library/react';
4+
import { ManyResources } from './ListGuesser.stories';
85

96
describe('<ListGuesser />', () => {
10-
it('should log the guessed List view based on the fetched records', async () => {
7+
it('should log the guessed List views based on the fetched records', async () => {
118
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
12-
const dataProvider = testDataProvider({
13-
// @ts-ignore
14-
getList: () =>
15-
Promise.resolve({
16-
data: [
17-
{
18-
id: 123,
19-
author: 'john doe',
20-
post_id: 6,
21-
score: 3,
22-
body: "Queen, tossing her head through the wood. 'If it had lost something; and she felt sure it.",
23-
created_at: new Date('2012-08-02'),
24-
tags_ids: [1, 2],
25-
},
26-
],
27-
total: 1,
28-
}),
29-
getMany: () => Promise.resolve({ data: [], total: 0 }),
30-
});
31-
render(
32-
<ThemeProvider>
33-
<CoreAdminContext dataProvider={dataProvider as any}>
34-
<ListGuesser resource="comments" enableLog />
35-
</CoreAdminContext>
36-
</ThemeProvider>
37-
);
38-
await waitFor(() => {
39-
screen.getByText('john doe');
40-
});
9+
render(<ManyResources />);
10+
await screen.findAllByText('top seller');
11+
expect(logSpy).toHaveBeenCalledWith(`Guessed List:
12+
13+
import { DataTable, DataTable.Col, DataTable.NumberCol, List, ReferenceArrayField, ReferenceField } from 'react-admin';
14+
15+
export const ProductList = () => (
16+
<List>
17+
<DataTable>
18+
<DataTable.Col source="id" />
19+
<DataTable.Col source="name" />
20+
<DataTable.NumberCol source="price" />
21+
<DataTable.Col source="category_id"><ReferenceField source="category_id" reference="categories" /></DataTable.Col>
22+
<DataTable.Col source="tags_ids"><ReferenceArrayField source="tags_ids" reference="tags" /></DataTable.Col>
23+
<DataTable.Col source="last_update" field={DateField} />
24+
<DataTable.Col source="email" field={EmailField} />
25+
</DataTable>
26+
</List>
27+
);`);
28+
logSpy.mockClear();
29+
30+
fireEvent.click(screen.getByText('Categories'));
31+
await screen.findByText('Jeans');
32+
expect(logSpy).toHaveBeenCalledWith(`Guessed List:
33+
34+
import { ArrayField, ChipField, DataTable, DataTable.Col, List, SingleFieldList } from 'react-admin';
35+
36+
export const CategoryList = () => (
37+
<List>
38+
<DataTable>
39+
<DataTable.Col source="id" />
40+
<DataTable.Col source="name" />
41+
<DataTable.Col source="alternativeName"><ArrayField source="alternativeName"><SingleFieldList><ChipField source="name" /></SingleFieldList></ArrayField></DataTable.Col>
42+
<DataTable.Col source="isVeganProduction" field={BooleanField} />
43+
</DataTable>
44+
</List>
45+
);`);
46+
47+
logSpy.mockClear();
48+
fireEvent.click(screen.getByText('Tags'));
49+
await screen.findByText('top seller');
4150
expect(logSpy).toHaveBeenCalledWith(`Guessed List:
4251
43-
import { Datagrid, DateField, List, NumberField, ReferenceArrayField, ReferenceField, TextField } from 'react-admin';
52+
import { DataTable, DataTable.Col, List } from 'react-admin';
4453
45-
export const CommentList = () => (
54+
export const TagList = () => (
4655
<List>
47-
<Datagrid>
48-
<TextField source="id" />
49-
<TextField source="author" />
50-
<ReferenceField source="post_id" reference="posts" />
51-
<NumberField source="score" />
52-
<TextField source="body" />
53-
<DateField source="created_at" />
54-
<ReferenceArrayField source="tags_ids" reference="tags" />
55-
</Datagrid>
56+
<DataTable>
57+
<DataTable.Col source="id" />
58+
<DataTable.Col source="name" />
59+
<DataTable.Col source="url" field={UrlField} />
60+
</DataTable>
5661
</List>
5762
);`);
5863
});

0 commit comments

Comments
 (0)