(app-desk) add team page

- add the team page, you can access to
the team page with the id of the team.
- Add link to the panel team to access to the
team page.
This commit is contained in:
Anthony LC
2024-02-13 11:33:22 +01:00
committed by Anthony LC
parent d0562029e8
commit 8b0c20dbdc
6 changed files with 162 additions and 60 deletions

View File

@@ -58,4 +58,26 @@ test.describe('Teams', () => {
await expect(buttonCreateHomepage).toBeVisible();
});
test('checks the routing on new team created', async ({
page,
browserName,
}) => {
const panel = page.getByLabel('Teams panel').first();
await panel.getByRole('button', { name: 'Add a team' }).click();
const teamName = `My routing team ${browserName}-${Math.floor(Math.random() * 1000)}`;
await page.getByText('Team name').fill(teamName);
await page.getByRole('button', { name: 'Create the team' }).click();
const elTeam = page.getByText(`Teams: ${teamName}`);
await expect(elTeam).toBeVisible();
await panel.getByRole('button', { name: 'Add a team' }).click();
await expect(elTeam).toBeHidden();
await panel.locator('li').getByText(teamName).click();
await expect(elTeam).toBeVisible();
});
});

View File

@@ -27,28 +27,23 @@ test.describe('Teams Panel', () => {
name: 'Add a team',
}),
).toBeVisible();
await expect(
panel.getByText(
'Create your first team by clicking on the "Create a new team" button.',
),
).toBeVisible();
});
test('002 - checks the sort button', async ({ page, browserName }) => {
const panel = page.getByLabel('Teams panel').first();
await panel.getByRole('button', { name: 'Add a team' }).click();
const randomTeams = Array.from({ length: 3 }, () => {
return `team-sort-${browserName}-${Math.floor(Math.random() * 1000)}`;
const buttonCreate = page.getByRole('button', { name: 'Create the team' });
const randomTeams = Array.from({ length: 3 }, (_el, index) => {
return `team-sort-${browserName}-${Math.floor(Math.random() * 1000)}-${index}`;
});
for (let i = 0; i < 3; i++) {
await page.getByText('Team name').fill(`${randomTeams[i]}-${i}`);
await page.getByRole('button', { name: 'Create the team' }).click();
for (let i = 0; i < randomTeams.length; i++) {
await panel.getByRole('button', { name: 'Add a team' }).click();
await page.getByText('Team name').fill(randomTeams[i]);
await expect(buttonCreate).toBeEnabled();
await buttonCreate.click();
await expect(
panel.locator('li').nth(0).getByText(`${randomTeams[i]}-${i}`),
panel.locator('li').nth(0).getByText(randomTeams[i]),
).toBeVisible();
}
@@ -58,32 +53,33 @@ test.describe('Teams Panel', () => {
})
.click();
for (let i = 0; i < 3; i++) {
await expect(
panel.locator('li').nth(i).getByText(`${randomTeams[i]}-${i}`),
).toBeVisible();
}
await expect(panel.locator('li').getByText(randomTeams[1])).toBeVisible();
const allTeams = await panel.locator('li').allTextContents();
const sortedTeamTexts = allTeams.filter((team) =>
randomTeams.some((randomTeam) => team.includes(randomTeam)),
);
expect(sortedTeamTexts).toStrictEqual(randomTeams);
});
test('003 - checks the infinite scrool', async ({ page, browserName }) => {
test.setTimeout(90000);
const panel = page.getByLabel('Teams panel').first();
await panel.getByRole('button', { name: 'Add a team' }).click();
const randomTeams = Array.from({ length: 40 }, () => {
return `team-infinite-${browserName}-${Math.floor(Math.random() * 10000)}`;
const buttonCreate = page.getByRole('button', { name: 'Create the team' });
const randomTeams = Array.from({ length: 40 }, (_el, index) => {
return `team-infinite-${browserName}-${Math.floor(Math.random() * 10000)}-${index}`;
});
for (let i = 0; i < 40; i++) {
await page.getByText('Team name').fill(`${randomTeams[i]}-${i}`);
await page.getByRole('button', { name: 'Create the team' }).click();
await expect(
panel.locator('li').getByText(`${randomTeams[i]}-${i}`),
).toBeVisible();
for (let i = 0; i < randomTeams.length; i++) {
await panel.getByRole('button', { name: 'Add a team' }).click();
await page.getByText('Team name').fill(randomTeams[i]);
await expect(buttonCreate).toBeEnabled();
await buttonCreate.click();
await expect(panel.locator('li').getByText(randomTeams[i])).toBeVisible();
}
await expect(panel.locator('li')).toHaveCount(20);
await panel.getByText(`${randomTeams[24]}-${24}`).click();
await panel.getByText(randomTeams[24]).click();
await waitForElementCount(panel.locator('li'), 21, 10000);
expect(await panel.locator('li').count()).toBeGreaterThan(20);