diff --git a/src/frontend/apps/impress/src/__tests__/pages.test.tsx b/src/frontend/apps/impress/src/__tests__/pages.test.tsx index ce4573e9..fefce471 100644 --- a/src/frontend/apps/impress/src/__tests__/pages.test.tsx +++ b/src/frontend/apps/impress/src/__tests__/pages.test.tsx @@ -11,7 +11,7 @@ describe('Page', () => { expect( screen.getByRole('button', { - name: /Create a new team/i, + name: /Create a new pad/i, }), ).toBeInTheDocument(); }); diff --git a/src/frontend/apps/impress/src/features/header/Header.tsx b/src/frontend/apps/impress/src/features/header/Header.tsx index d41438d5..b07ff7b5 100644 --- a/src/frontend/apps/impress/src/features/header/Header.tsx +++ b/src/frontend/apps/impress/src/features/header/Header.tsx @@ -8,8 +8,8 @@ import { ApplicationsMenu } from '@/features/header/ApplicationsMenu'; import { LanguagePicker } from '../language/'; -import { default as IconImpress } from './assets/icon-impress.svg?url'; import { default as IconGouv } from './assets/icon-gouv.svg?url'; +import { default as IconImpress } from './assets/icon-impress.svg?url'; import { default as IconMarianne } from './assets/icon-marianne.svg?url'; import IconMyAccount from './assets/icon-my-account.png'; diff --git a/src/frontend/apps/impress/src/features/pads/pad/types.tsx b/src/frontend/apps/impress/src/features/pads/pad/types.tsx index 31cbc236..e35b7cc5 100644 --- a/src/frontend/apps/impress/src/features/pads/pad/types.tsx +++ b/src/frontend/apps/impress/src/features/pads/pad/types.tsx @@ -1,4 +1,17 @@ -import { Access } from '@/features/members'; +import { User } from '@/core/auth'; + +export interface Access { + id: string; + role: Role; + user: User; + abilities: { + delete: boolean; + get: boolean; + patch: boolean; + put: boolean; + set_role_to: Role[]; + }; +} export enum Role { MEMBER = 'member', diff --git a/src/frontend/apps/impress/src/features/pads/pads-panel/__tests__/PanelTeams.test.tsx b/src/frontend/apps/impress/src/features/pads/pads-panel/__tests__/PanelTeams.test.tsx index 8b32a390..dbb6c4a0 100644 --- a/src/frontend/apps/impress/src/features/pads/pads-panel/__tests__/PanelTeams.test.tsx +++ b/src/frontend/apps/impress/src/features/pads/pads-panel/__tests__/PanelTeams.test.tsx @@ -3,10 +3,10 @@ import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import fetchMock from 'fetch-mock'; -import { Panel } from '@/features/teams'; import { AppWrapper } from '@/tests/utils'; -import { TeamList } from '../components/PadList'; +import { PadList } from '../components/PadList'; +import { Panel } from '../components/Panel'; window.HTMLElement.prototype.scroll = function () {}; @@ -17,30 +17,30 @@ jest.mock('next/router', () => ({ }), })); -describe('PanelTeams', () => { +describe('PanelPads', () => { afterEach(() => { fetchMock.restore(); }); - it('renders with no team to display', async () => { - fetchMock.mock(`/api/teams/?page=1&ordering=-created_at`, { + it('renders with no pad to display', async () => { + fetchMock.mock(`/api/pads/?page=1&ordering=-created_at`, { count: 0, results: [], }); - render(, { wrapper: AppWrapper }); + render(, { wrapper: AppWrapper }); expect(screen.getByRole('status')).toBeInTheDocument(); expect( await screen.findByText( - 'Create your first team by clicking on the "Create a new team" button.', + 'Create your first pad by clicking on the "Create a new pad" button.', ), ).toBeInTheDocument(); }); - it('renders an empty team', async () => { - fetchMock.mock(`/api/teams/?page=1&ordering=-created_at`, { + it('renders an empty pad', async () => { + fetchMock.mock(`/api/pads/?page=1&ordering=-created_at`, { count: 1, results: [ { @@ -51,17 +51,15 @@ describe('PanelTeams', () => { ], }); - render(, { wrapper: AppWrapper }); + render(, { wrapper: AppWrapper }); expect(screen.getByRole('status')).toBeInTheDocument(); - expect( - await screen.findByLabelText('Empty teams icon'), - ).toBeInTheDocument(); + expect(await screen.findByLabelText('Empty pads icon')).toBeInTheDocument(); }); - it('renders a team with only 1 member', async () => { - fetchMock.mock(`/api/teams/?page=1&ordering=-created_at`, { + it('renders a pad with only 1 member', async () => { + fetchMock.mock(`/api/pads/?page=1&ordering=-created_at`, { count: 1, results: [ { @@ -77,22 +75,20 @@ describe('PanelTeams', () => { ], }); - render(, { wrapper: AppWrapper }); + render(, { wrapper: AppWrapper }); expect(screen.getByRole('status')).toBeInTheDocument(); - expect( - await screen.findByLabelText('Empty teams icon'), - ).toBeInTheDocument(); + expect(await screen.findByLabelText('Empty pads icon')).toBeInTheDocument(); }); - it('renders a non-empty team', async () => { - fetchMock.mock(`/api/teams/?page=1&ordering=-created_at`, { + it('renders a non-empty pad', async () => { + fetchMock.mock(`/api/pads/?page=1&ordering=-created_at`, { count: 1, results: [ { id: '1', - name: 'Team 1', + name: 'Pad 1', accesses: [ { id: '1', @@ -107,19 +103,19 @@ describe('PanelTeams', () => { ], }); - render(, { wrapper: AppWrapper }); + render(, { wrapper: AppWrapper }); expect(screen.getByRole('status')).toBeInTheDocument(); - expect(await screen.findByLabelText('Teams icon')).toBeInTheDocument(); + expect(await screen.findByLabelText('Pads icon')).toBeInTheDocument(); }); it('renders the error', async () => { - fetchMock.mock(`/api/teams/?page=1&ordering=-created_at`, { + fetchMock.mock(`/api/pads/?page=1&ordering=-created_at`, { status: 500, }); - render(, { wrapper: AppWrapper }); + render(, { wrapper: AppWrapper }); expect(screen.getByRole('status')).toBeInTheDocument(); @@ -130,8 +126,8 @@ describe('PanelTeams', () => { ).toBeInTheDocument(); }); - it('renders with team panel open', async () => { - fetchMock.mock(`/api/teams/?page=1&ordering=-created_at`, { + it('renders with pad panel open', async () => { + fetchMock.mock(`/api/pads/?page=1&ordering=-created_at`, { count: 1, results: [], }); @@ -139,14 +135,14 @@ describe('PanelTeams', () => { render(, { wrapper: AppWrapper }); expect( - screen.getByRole('button', { name: 'Close the teams panel' }), + screen.getByRole('button', { name: 'Close the pads panel' }), ).toBeVisible(); expect(await screen.findByText('Recents')).toBeVisible(); }); - it('closes and opens the team panel', async () => { - fetchMock.mock(`/api/teams/?page=1&ordering=-created_at`, { + it('closes and opens the pad panel', async () => { + fetchMock.mock(`/api/pads/?page=1&ordering=-created_at`, { count: 1, results: [], }); @@ -157,7 +153,7 @@ describe('PanelTeams', () => { await userEvent.click( screen.getByRole('button', { - name: 'Close the teams panel', + name: 'Close the pads panel', }), ); @@ -165,7 +161,7 @@ describe('PanelTeams', () => { await userEvent.click( screen.getByRole('button', { - name: 'Open the teams panel', + name: 'Open the pads panel', }), ); diff --git a/src/frontend/apps/impress/src/features/pads/pads-panel/components/PadItem.tsx b/src/frontend/apps/impress/src/features/pads/pads-panel/components/PadItem.tsx index df48242d..10bbd6b3 100644 --- a/src/frontend/apps/impress/src/features/pads/pads-panel/components/PadItem.tsx +++ b/src/frontend/apps/impress/src/features/pads/pads-panel/components/PadItem.tsx @@ -67,7 +67,7 @@ export const PadItem = ({ pad }: PadItemProps) => { {hasMembers ? ( { /> ) : ( { transition: ${transition}; `} $height="inherit" - aria-label="Teams panel" + aria-label="Pads panel" {...closedOverridingStyles} > { Object.keys(jsonimpress) .filter((key) => key !== 'en') .forEach((key) => { - const listKeysimpress = Object.keys(jsonimpress[key].translation).sort(); + const listKeysimpress = Object.keys( + jsonimpress[key].translation, + ).sort(); const missingKeys = listKeysCrowdin.filter( (element) => !listKeysimpress.includes(element), );