Move stories and tests inside each component folders
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
import { MemoryRouter } from 'react-router-dom';
|
import { MemoryRouter } from 'react-router-dom';
|
||||||
|
|
||||||
import Navbar from '../../../layout/navbar/Navbar';
|
import Navbar from '../Navbar';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
title: 'Navbar',
|
title: 'Navbar',
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import { render, fireEvent } from '@testing-library/react';
|
import { render, fireEvent } from '@testing-library/react';
|
||||||
|
|
||||||
import { NavItemDefault } from '../../../stories/layout/navbar/NavItem.stories'; //👈 Our stories imported here.
|
import { NavItemDefault } from '../__stories__/NavItem.stories';
|
||||||
|
|
||||||
const mockedNavigate = jest.fn();
|
const mockedNavigate = jest.fn();
|
||||||
jest.mock('react-router-dom', () => ({
|
jest.mock('react-router-dom', () => ({
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import { render } from '@testing-library/react';
|
import { render } from '@testing-library/react';
|
||||||
|
|
||||||
import { NavbarOnInsights } from '../../../stories/layout/navbar/Navbar.stories';
|
import { NavbarOnInsights } from '../__stories__/Navbar.stories';
|
||||||
|
|
||||||
it('Checks the NavItem renders', () => {
|
it('Checks the NavItem renders', () => {
|
||||||
const { getByRole } = render(<NavbarOnInsights />);
|
const { getByRole } = render(<NavbarOnInsights />);
|
||||||
@ -1,10 +1,10 @@
|
|||||||
import FullWidthContainer from '../../layout/containers/FullWidthContainer';
|
import FullWidthContainer from '../../layout/containers/FullWidthContainer';
|
||||||
import TaskList from './TaskList';
|
import ListPanel from './ListPanel';
|
||||||
|
|
||||||
function Inbox() {
|
function Inbox() {
|
||||||
return (
|
return (
|
||||||
<FullWidthContainer>
|
<FullWidthContainer>
|
||||||
<TaskList />
|
<ListPanel />
|
||||||
</FullWidthContainer>
|
</FullWidthContainer>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
import TaskListHeader from './TaskListHeader';
|
import ListPanelHeader from './ListPanelHeader';
|
||||||
import TaskListItem from './TaskListItem';
|
import ListPanelItem from './ListPanelItem';
|
||||||
|
|
||||||
const StyledList = styled.div`
|
const StyledList = styled.div`
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -17,7 +17,7 @@ export type Task = {
|
|||||||
lastMessage: string;
|
lastMessage: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
function TaskList() {
|
function ListPanel() {
|
||||||
const tasks: Task[] = [
|
const tasks: Task[] = [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
@ -38,13 +38,13 @@ function TaskList() {
|
|||||||
return (
|
return (
|
||||||
<StyledList>
|
<StyledList>
|
||||||
<>
|
<>
|
||||||
<TaskListHeader />
|
<ListPanelHeader />
|
||||||
{tasks.map((item) => (
|
{tasks.map((item) => (
|
||||||
<TaskListItem key={item.id} task={item} />
|
<ListPanelItem key={item.id} task={item} />
|
||||||
))}
|
))}
|
||||||
</>
|
</>
|
||||||
</StyledList>
|
</StyledList>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default TaskList;
|
export default ListPanel;
|
||||||
@ -10,8 +10,8 @@ const StyledHeader = styled.div`
|
|||||||
border-bottom: 1px solid #eaecee;
|
border-bottom: 1px solid #eaecee;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
function TaskListHeader() {
|
function ListPanelHeader() {
|
||||||
return <StyledHeader>6 tasks waiting</StyledHeader>;
|
return <StyledHeader>6 tasks waiting</StyledHeader>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default TaskListHeader;
|
export default ListPanelHeader;
|
||||||
@ -1,5 +1,5 @@
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
import { Task } from './TaskList';
|
import { Task } from './ListPanel';
|
||||||
|
|
||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
task: Task;
|
task: Task;
|
||||||
@ -72,7 +72,7 @@ const StyledContent = styled.div`
|
|||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
function TaskListItem({ task }: OwnProps) {
|
function ListPanelItem({ task }: OwnProps) {
|
||||||
return (
|
return (
|
||||||
<StyledListItem>
|
<StyledListItem>
|
||||||
<StyledHeader>
|
<StyledHeader>
|
||||||
@ -95,4 +95,4 @@ function TaskListItem({ task }: OwnProps) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default TaskListItem;
|
export default ListPanelItem;
|
||||||
50
front/src/pages/inbox/PluginPanel.tsx
Normal file
50
front/src/pages/inbox/PluginPanel.tsx
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import styled from '@emotion/styled';
|
||||||
|
import ListPanelHeader from './ListPanelHeader';
|
||||||
|
import ListPanelItem from './ListPanelItem';
|
||||||
|
|
||||||
|
const StyledList = styled.div`
|
||||||
|
display: flex;
|
||||||
|
width: 325px;
|
||||||
|
flex-direction: column;
|
||||||
|
border-right: 2px solid #eaecee;
|
||||||
|
`;
|
||||||
|
|
||||||
|
export type Task = {
|
||||||
|
id: number;
|
||||||
|
targetUser: string;
|
||||||
|
label: string;
|
||||||
|
time: string;
|
||||||
|
lastMessage: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
function ListPanel() {
|
||||||
|
const tasks: Task[] = [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
targetUser: 'Sylvie Vartan',
|
||||||
|
label: 'Guest at #xxx property',
|
||||||
|
time: '3h',
|
||||||
|
lastMessage:
|
||||||
|
'I’m looking for my order but couldn’t find it. Could you help me find it. I don’t know where ...',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
targetUser: 'Johnny Halliday',
|
||||||
|
label: 'Guest at #xxx property',
|
||||||
|
time: '4h',
|
||||||
|
lastMessage: 'Hello, this is Johnny',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
return (
|
||||||
|
<StyledList>
|
||||||
|
<>
|
||||||
|
<ListPanelHeader />
|
||||||
|
{tasks.map((item) => (
|
||||||
|
<ListPanelItem key={item.id} task={item} />
|
||||||
|
))}
|
||||||
|
</>
|
||||||
|
</StyledList>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ListPanel;
|
||||||
@ -1,5 +1,5 @@
|
|||||||
import { MemoryRouter } from 'react-router-dom';
|
import { MemoryRouter } from 'react-router-dom';
|
||||||
import Inbox from '../../../pages/inbox/Inbox';
|
import Inbox from '../Inbox';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
title: 'Inbox',
|
title: 'Inbox',
|
||||||
8
front/src/pages/inbox/__stories__/ListPanel.stories.tsx
Normal file
8
front/src/pages/inbox/__stories__/ListPanel.stories.tsx
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import ListPanel from '../ListPanel';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
title: 'Inbox',
|
||||||
|
component: ListPanel,
|
||||||
|
};
|
||||||
|
|
||||||
|
export const ListPanelDefault = () => <ListPanel />;
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
import { MemoryRouter } from 'react-router-dom';
|
||||||
|
import ListPanelHeader from '../ListPanelHeader';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
title: 'Inbox',
|
||||||
|
component: ListPanelHeader,
|
||||||
|
};
|
||||||
|
|
||||||
|
export const ListPanelHeaderDefault = () => <ListPanelHeader />;
|
||||||
@ -1,13 +1,13 @@
|
|||||||
import { MemoryRouter } from 'react-router-dom';
|
import { MemoryRouter } from 'react-router-dom';
|
||||||
import TaskListItem from '../../../pages/inbox/TaskListItem';
|
import ListPanelItem from '../ListPanelItem';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
title: 'Inbox',
|
title: 'Inbox',
|
||||||
component: TaskListItem,
|
component: ListPanelItem,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const TaskListItemDefault = () => (
|
export const ListPanelItemDefault = () => (
|
||||||
<TaskListItem
|
<ListPanelItem
|
||||||
task={{
|
task={{
|
||||||
id: 1,
|
id: 1,
|
||||||
targetUser: 'Sylvie Vartan',
|
targetUser: 'Sylvie Vartan',
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import { render } from '@testing-library/react';
|
import { render } from '@testing-library/react';
|
||||||
|
|
||||||
import { InboxDefault } from '../../../stories/pages/inbox/Inbox.stories';
|
import { InboxDefault } from '../__stories__/Inbox.stories';
|
||||||
|
|
||||||
it('Checks the Inbox page render', () => {
|
it('Checks the Inbox page render', () => {
|
||||||
const { getAllByRole } = render(<InboxDefault />);
|
const { getAllByRole } = render(<InboxDefault />);
|
||||||
@ -1,9 +1,9 @@
|
|||||||
import { render } from '@testing-library/react';
|
import { render } from '@testing-library/react';
|
||||||
|
|
||||||
import { TaskListDefault } from '../../../stories/pages/inbox/TaskList.stories';
|
import { ListPanelDefault } from '../__stories__/ListPanel.stories';
|
||||||
|
|
||||||
it('Checks the task list render', () => {
|
it('Checks the task list render', () => {
|
||||||
const { getAllByRole } = render(<TaskListDefault />);
|
const { getAllByRole } = render(<ListPanelDefault />);
|
||||||
|
|
||||||
const button = getAllByRole('button');
|
const button = getAllByRole('button');
|
||||||
expect(button[0]).toHaveTextContent('Sylvie Vartan');
|
expect(button[0]).toHaveTextContent('Sylvie Vartan');
|
||||||
10
front/src/pages/inbox/__tests__/ListPanelHeader.test.tsx
Normal file
10
front/src/pages/inbox/__tests__/ListPanelHeader.test.tsx
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import { render } from '@testing-library/react';
|
||||||
|
|
||||||
|
import { ListPanelHeaderDefault } from '../__stories__/ListPanelHeader.stories';
|
||||||
|
|
||||||
|
it('Checks the ListPanelHeader render', () => {
|
||||||
|
const { getAllByText } = render(<ListPanelHeaderDefault />);
|
||||||
|
|
||||||
|
const text = getAllByText('6 tasks waiting');
|
||||||
|
expect(text).toBeDefined();
|
||||||
|
});
|
||||||
10
front/src/pages/inbox/__tests__/ListPanelItem.test.tsx
Normal file
10
front/src/pages/inbox/__tests__/ListPanelItem.test.tsx
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import { render } from '@testing-library/react';
|
||||||
|
|
||||||
|
import { ListPanelItemDefault } from '../__stories__/ListPanelItem.stories';
|
||||||
|
|
||||||
|
it('Checks the ListPanelItem render', () => {
|
||||||
|
const { getAllByText } = render(<ListPanelItemDefault />);
|
||||||
|
|
||||||
|
const text = getAllByText('Sylvie Vartan');
|
||||||
|
expect(text).toBeDefined();
|
||||||
|
});
|
||||||
@ -1,8 +0,0 @@
|
|||||||
import TaskList from '../../../pages/inbox/TaskList';
|
|
||||||
|
|
||||||
export default {
|
|
||||||
title: 'Inbox',
|
|
||||||
component: TaskList,
|
|
||||||
};
|
|
||||||
|
|
||||||
export const TaskListDefault = () => <TaskList />;
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
import { MemoryRouter } from 'react-router-dom';
|
|
||||||
import TaskListHeader from '../../../pages/inbox/TaskListHeader';
|
|
||||||
|
|
||||||
export default {
|
|
||||||
title: 'Inbox',
|
|
||||||
component: TaskListHeader,
|
|
||||||
};
|
|
||||||
|
|
||||||
export const TaskListHeaderDefault = () => <TaskListHeader />;
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
import { render } from '@testing-library/react';
|
|
||||||
|
|
||||||
import { TaskListHeaderDefault } from '../../../stories/pages/inbox/TaskListHeader.stories';
|
|
||||||
|
|
||||||
it('Checks the TaskListHeader render', () => {
|
|
||||||
const { getAllByText } = render(<TaskListHeaderDefault />);
|
|
||||||
|
|
||||||
const text = getAllByText('6 tasks waiting');
|
|
||||||
expect(text).toBeDefined();
|
|
||||||
});
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
import { render } from '@testing-library/react';
|
|
||||||
|
|
||||||
import { TaskListItemDefault } from '../../../stories/pages/inbox/TaskListItem.stories';
|
|
||||||
|
|
||||||
it('Checks the TaskListItem render', () => {
|
|
||||||
const { getAllByText } = render(<TaskListItemDefault />);
|
|
||||||
|
|
||||||
const text = getAllByText('Sylvie Vartan');
|
|
||||||
expect(text).toBeDefined();
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user