♻️(frontend) datagrid ordered by updated_at desc

The datagrid is now ordered by updated_at desc.
This commit is contained in:
Anthony LC
2024-08-23 13:20:32 +02:00
committed by Anthony LC
parent 3a420c0416
commit ced850aecf
2 changed files with 102 additions and 78 deletions

View File

@@ -49,37 +49,55 @@ test.describe('Documents Grid', () => {
nameColumn: 'Document name', nameColumn: 'Document name',
ordering: 'title', ordering: 'title',
cellNumber: 1, cellNumber: 1,
orderDefault: '',
orderDesc: '&ordering=-title',
orderAsc: '&ordering=title',
}, },
{ {
nameColumn: 'Created at', nameColumn: 'Created at',
ordering: 'created_at', ordering: 'created_at',
cellNumber: 2, cellNumber: 2,
orderDefault: '',
orderDesc: '&ordering=-created_at',
orderAsc: '&ordering=created_at',
}, },
{ {
nameColumn: 'Updated at', nameColumn: 'Updated at',
ordering: 'updated_at', ordering: 'updated_at',
cellNumber: 3, cellNumber: 3,
orderDefault: '&ordering=-updated_at',
orderDesc: '&ordering=updated_at',
orderAsc: '',
}, },
].forEach(({ nameColumn, ordering, cellNumber }) => { ].forEach(
({
nameColumn,
ordering,
cellNumber,
orderDefault,
orderDesc,
orderAsc,
}) => {
test(`checks datagrid ordering ${ordering}`, async ({ page }) => { test(`checks datagrid ordering ${ordering}`, async ({ page }) => {
const responsePromise = page.waitForResponse( const responsePromise = page.waitForResponse(
(response) => (response) =>
response.url().includes(`/documents/?page=1`) && response.url().includes(`/documents/?page=1${orderDefault}`) &&
response.status() === 200, response.status() === 200,
); );
const responsePromiseOrderingDesc = page.waitForResponse( const responsePromiseOrderingDesc = page.waitForResponse(
(response) => (response) =>
response.url().includes(`/documents/?page=1&ordering=-${ordering}`) && response.url().includes(`/documents/?page=1${orderDesc}`) &&
response.status() === 200, response.status() === 200,
); );
const responsePromiseOrderingAsc = page.waitForResponse( const responsePromiseOrderingAsc = page.waitForResponse(
(response) => (response) =>
response.url().includes(`/documents/?page=1&ordering=${ordering}`) && response.url().includes(`/documents/?page=1${orderAsc}`) &&
response.status() === 200, response.status() === 200,
); );
// Checks the initial state
const datagrid = page const datagrid = page
.getByLabel('Datagrid of the documents page 1') .getByLabel('Datagrid of the documents page 1')
.getByRole('table'); .getByRole('table');
@@ -153,7 +171,8 @@ test.describe('Documents Grid', () => {
}) >= 0, }) >= 0,
).toBeTruthy(); ).toBeTruthy();
}); });
}); },
);
test('checks the pagination', async ({ page }) => { test('checks the pagination', async ({ page }) => {
const responsePromisePage1 = page.waitForResponse( const responsePromisePage1 = page.waitForResponse(

View File

@@ -53,7 +53,12 @@ export const DocsGrid = () => {
const pagination = usePagination({ const pagination = usePagination({
pageSize: PAGE_SIZE, pageSize: PAGE_SIZE,
}); });
const [sortModel, setSortModel] = useState<SortModel>([]); const [sortModel, setSortModel] = useState<SortModel>([
{
field: 'updated_at',
sort: 'desc',
},
]);
const { page, pageSize, setPagesCount } = pagination; const { page, pageSize, setPagesCount } = pagination;
const [docs, setDocs] = useState<Doc[]>([]); const [docs, setDocs] = useState<Doc[]>([]);