github-issue-tower-defence-management 1.91.0 → 1.91.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +5 -4
- package/bin/adapter/entry-points/cli/index.js +1 -1
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/entry-points/handlers/consoleListsWriter.js +1 -0
- package/bin/adapter/entry-points/handlers/consoleListsWriter.js.map +1 -1
- package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js +3 -0
- package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/cli/index.test.ts +6 -1
- package/src/adapter/entry-points/cli/index.ts +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMarkdownView.stories.tsx → content/ConsoleMarkdownContent.stories.tsx} +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMarkdownView.test.tsx → content/ConsoleMarkdownContent.test.tsx} +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMarkdownView.tsx → content/ConsoleMarkdownContent.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMermaidDiagram.stories.tsx → content/ConsoleMermaidDiagram.stories.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMermaidDiagram.test.tsx → content/ConsoleMermaidDiagram.test.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMermaidDiagram.tsx → content/ConsoleMermaidDiagram.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleChangedFileList.stories.tsx → detail/ConsoleChangedFileList.stories.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleChangedFileList.test.tsx → detail/ConsoleChangedFileList.test.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleChangedFileList.tsx → detail/ConsoleChangedFileList.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommentList.stories.tsx → detail/ConsoleCommentList.stories.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommentList.test.tsx → detail/ConsoleCommentList.test.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommentList.tsx → detail/ConsoleCommentList.tsx} +4 -4
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommitList.stories.tsx → detail/ConsoleCommitList.stories.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommitList.test.tsx → detail/ConsoleCommitList.test.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommitList.tsx → detail/ConsoleCommitList.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemDetail.stories.tsx → detail/ConsoleItemDetail.stories.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemDetail.test.tsx → detail/ConsoleItemDetail.test.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemDetail.tsx → detail/ConsoleItemDetail.tsx} +11 -8
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemIcon.test.tsx → detail/ConsoleItemIcon.test.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemIcon.tsx → detail/ConsoleItemIcon.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePullRequestSection.stories.tsx → detail/ConsolePullRequestDetail.stories.tsx} +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePullRequestSection.test.tsx → detail/ConsolePullRequestDetail.test.tsx} +5 -5
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePullRequestSection.tsx → detail/ConsolePullRequestDetail.tsx} +5 -5
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleProjectHeader.stories.tsx → layout/ConsoleProjectSummary.stories.tsx} +5 -5
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleProjectHeader.test.tsx → layout/ConsoleProjectSummary.test.tsx} +4 -4
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleProjectHeader.tsx → layout/ConsoleProjectSummary.tsx} +3 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleTabBar.stories.tsx → layout/ConsoleTabList.stories.tsx} +7 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleTabBar.test.tsx → layout/ConsoleTabList.test.tsx} +7 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleTabBar.tsx → layout/ConsoleTabList.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListView.stories.tsx → list/ConsoleItemList.stories.tsx} +7 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListView.test.tsx → list/ConsoleItemList.test.tsx} +9 -9
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListView.tsx → list/ConsoleItemList.tsx} +13 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListItemRow.stories.tsx → list/ConsoleItemSummary.stories.tsx} +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListItemRow.test.tsx → list/ConsoleItemSummary.test.tsx} +7 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListItemRow.tsx → list/ConsoleItemSummary.tsx} +3 -3
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStoryGroupHeader.stories.tsx → list/ConsoleStorySummary.stories.tsx} +5 -5
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStoryGroupHeader.test.tsx → list/ConsoleStorySummary.test.tsx} +4 -4
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStoryGroupHeader.tsx → list/ConsoleStorySummary.tsx} +3 -3
- package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleCloseActions.stories.tsx +14 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCloseButtonGroup.test.tsx → operations/ConsoleCloseActions.test.tsx} +4 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCloseButtonGroup.tsx → operations/ConsoleCloseActions.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleNextActionDateActions.stories.tsx +20 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleNextActionDateGroup.test.tsx → operations/ConsoleNextActionDateActions.test.tsx} +5 -5
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleNextActionDateGroup.tsx → operations/ConsoleNextActionDateActions.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleOperationBar.stories.tsx → operations/ConsoleOperationMenu.stories.tsx} +7 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleOperationBar.test.tsx → operations/ConsoleOperationMenu.test.tsx} +8 -8
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleOperationBar.tsx → operations/ConsoleOperationMenu.tsx} +16 -13
- package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsolePullRequestReviewActions.stories.tsx +14 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePullRequestReviewGroup.test.tsx → operations/ConsolePullRequestReviewActions.test.tsx} +4 -4
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePullRequestReviewGroup.tsx → operations/ConsolePullRequestReviewActions.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleStatusActions.stories.tsx +17 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStatusButtonGroup.test.tsx → operations/ConsoleStatusActions.test.tsx} +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStatusButtonGroup.tsx → operations/ConsoleStatusActions.tsx} +7 -4
- package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleStoryActions.stories.tsx +17 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStoryButtonGroup.test.tsx → operations/ConsoleStoryActions.test.tsx} +5 -11
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStoryButtonGroup.tsx → operations/ConsoleStoryActions.tsx} +3 -3
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleCaches.ts +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleItemDetailData.test.ts +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleItemDetailData.ts +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOperations.test.ts +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOperations.ts +3 -3
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOverlay.test.ts +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOverlay.ts +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleTabData.ts +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/lib/consoleApi.ts +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/{grouping.ts → logic/grouping.ts} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsoleItemDetailContainer.test.tsx +4 -4
- package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsoleItemDetailContainer.tsx +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.tsx +10 -10
- package/src/adapter/entry-points/console/ui/src/features/console/{fixtures.ts → testing/fixtures.ts} +1 -1
- package/src/adapter/entry-points/console/ui-dist/assets/{index-BvuSQN9s.js → index-PtVrAcBb.js} +11 -11
- package/src/adapter/entry-points/console/ui-dist/index.html +1 -1
- package/src/adapter/entry-points/handlers/consoleListsWriter.test.ts +27 -2
- package/src/adapter/entry-points/handlers/consoleListsWriter.ts +1 -0
- package/src/domain/usecases/console/GenerateConsoleListsUseCase.test.ts +26 -0
- package/src/domain/usecases/console/GenerateConsoleListsUseCase.ts +17 -1
- package/types/adapter/entry-points/handlers/consoleListsWriter.d.ts.map +1 -1
- package/types/domain/usecases/console/GenerateConsoleListsUseCase.d.ts +2 -1
- package/types/domain/usecases/console/GenerateConsoleListsUseCase.d.ts.map +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleCloseButtonGroup.stories.tsx +0 -14
- package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleNextActionDateGroup.stories.tsx +0 -20
- package/src/adapter/entry-points/console/ui/src/features/console/components/ConsolePullRequestReviewGroup.stories.tsx +0 -14
- package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleStatusButtonGroup.stories.tsx +0 -17
- package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleStoryButtonGroup.stories.tsx +0 -17
- /package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemIcon.stories.tsx → detail/ConsoleItemIcon.stories.tsx} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePanel.stories.tsx → layout/ConsolePanel.stories.tsx} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePanel.test.tsx → layout/ConsolePanel.test.tsx} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePanel.tsx → layout/ConsolePanel.tsx} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{colors.test.ts → logic/colors.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{colors.ts → logic/colors.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{fileStatus.test.ts → logic/fileStatus.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{fileStatus.ts → logic/fileStatus.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{grouping.test.ts → logic/grouping.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{itemIcons.test.ts → logic/itemIcons.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{itemIcons.ts → logic/itemIcons.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{operations.test.ts → logic/operations.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{operations.ts → logic/operations.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{overlay.test.ts → logic/overlay.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{overlay.ts → logic/overlay.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{relativeTime.test.ts → logic/relativeTime.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{relativeTime.ts → logic/relativeTime.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{types.ts → logic/types.ts} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
-
import {
|
|
2
|
+
import { ConsoleProjectSummary } from './ConsoleProjectSummary';
|
|
3
3
|
|
|
4
|
-
const meta: Meta<typeof
|
|
5
|
-
title: 'Console/
|
|
6
|
-
component:
|
|
4
|
+
const meta: Meta<typeof ConsoleProjectSummary> = {
|
|
5
|
+
title: 'Console/ConsoleProjectSummary',
|
|
6
|
+
component: ConsoleProjectSummary,
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
export default meta;
|
|
10
10
|
|
|
11
|
-
type Story = StoryObj<typeof
|
|
11
|
+
type Story = StoryObj<typeof ConsoleProjectSummary>;
|
|
12
12
|
|
|
13
13
|
export const WithProject: Story = {
|
|
14
14
|
args: {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { render } from '@testing-library/react';
|
|
2
|
-
import {
|
|
2
|
+
import { ConsoleProjectSummary } from './ConsoleProjectSummary';
|
|
3
3
|
|
|
4
|
-
describe('
|
|
4
|
+
describe('ConsoleProjectSummary', () => {
|
|
5
5
|
it('shows the active project code when a pjcode is provided', () => {
|
|
6
|
-
const { getByText } = render(<
|
|
6
|
+
const { getByText } = render(<ConsoleProjectSummary pjcode="umino" />);
|
|
7
7
|
expect(getByText('project: umino')).toBeInTheDocument();
|
|
8
8
|
});
|
|
9
9
|
|
|
10
10
|
it('shows a no-project message when the pjcode is null', () => {
|
|
11
|
-
const { getByText } = render(<
|
|
11
|
+
const { getByText } = render(<ConsoleProjectSummary pjcode={null} />);
|
|
12
12
|
expect(getByText('no project selected')).toBeInTheDocument();
|
|
13
13
|
});
|
|
14
14
|
});
|
|
@@ -2,7 +2,9 @@ export type ConsoleProjectHeaderProps = {
|
|
|
2
2
|
pjcode: string | null;
|
|
3
3
|
};
|
|
4
4
|
|
|
5
|
-
export const
|
|
5
|
+
export const ConsoleProjectSummary = ({
|
|
6
|
+
pjcode,
|
|
7
|
+
}: ConsoleProjectHeaderProps) => (
|
|
6
8
|
<header className="flex items-baseline gap-2 border-b border-border p-3">
|
|
7
9
|
<h1 className="text-base font-semibold">TDPM Console</h1>
|
|
8
10
|
{pjcode === null ? (
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import type { ConsoleTabName } from '
|
|
4
|
-
import {
|
|
3
|
+
import type { ConsoleTabName } from '../../logic/types';
|
|
4
|
+
import { ConsoleTabList } from './ConsoleTabList';
|
|
5
5
|
|
|
6
|
-
const meta: Meta<typeof
|
|
7
|
-
title: 'Console/
|
|
8
|
-
component:
|
|
6
|
+
const meta: Meta<typeof ConsoleTabList> = {
|
|
7
|
+
title: 'Console/ConsoleTabList',
|
|
8
|
+
component: ConsoleTabList,
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export default meta;
|
|
12
12
|
|
|
13
|
-
type Story = StoryObj<typeof
|
|
13
|
+
type Story = StoryObj<typeof ConsoleTabList>;
|
|
14
14
|
|
|
15
15
|
const counts: Record<ConsoleTabName, number> = {
|
|
16
16
|
prs: 35,
|
|
@@ -60,7 +60,7 @@ export const Interactive: Story = {
|
|
|
60
60
|
render: () => {
|
|
61
61
|
const [activeTab, setActiveTab] = useState<ConsoleTabName>('prs');
|
|
62
62
|
return (
|
|
63
|
-
<
|
|
63
|
+
<ConsoleTabList
|
|
64
64
|
activeTab={activeTab}
|
|
65
65
|
counts={counts}
|
|
66
66
|
onSelectTab={setActiveTab}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { fireEvent, render } from '@testing-library/react';
|
|
2
|
-
import type { ConsoleTabName } from '
|
|
3
|
-
import {
|
|
2
|
+
import type { ConsoleTabName } from '../../logic/types';
|
|
3
|
+
import { ConsoleTabList } from './ConsoleTabList';
|
|
4
4
|
|
|
5
5
|
const counts: Record<ConsoleTabName, number> = {
|
|
6
6
|
prs: 3,
|
|
@@ -10,10 +10,10 @@ const counts: Record<ConsoleTabName, number> = {
|
|
|
10
10
|
'todo-by-human': 2,
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
describe('
|
|
13
|
+
describe('ConsoleTabList', () => {
|
|
14
14
|
it('hides zero-count tabs except the active tab', () => {
|
|
15
15
|
const { queryByText } = render(
|
|
16
|
-
<
|
|
16
|
+
<ConsoleTabList activeTab="prs" counts={counts} onSelectTab={() => {}} />,
|
|
17
17
|
);
|
|
18
18
|
expect(queryByText('Awaiting Quality Check')).not.toBeNull();
|
|
19
19
|
expect(queryByText('Unread')).not.toBeNull();
|
|
@@ -24,7 +24,7 @@ describe('ConsoleTabBar', () => {
|
|
|
24
24
|
|
|
25
25
|
it('keeps a zero-count active tab visible', () => {
|
|
26
26
|
const { queryByText } = render(
|
|
27
|
-
<
|
|
27
|
+
<ConsoleTabList
|
|
28
28
|
activeTab="triage"
|
|
29
29
|
counts={counts}
|
|
30
30
|
onSelectTab={() => {}}
|
|
@@ -35,7 +35,7 @@ describe('ConsoleTabBar', () => {
|
|
|
35
35
|
|
|
36
36
|
it('uses the exact lowercase Todo by human label', () => {
|
|
37
37
|
const { getByText } = render(
|
|
38
|
-
<
|
|
38
|
+
<ConsoleTabList
|
|
39
39
|
activeTab="todo-by-human"
|
|
40
40
|
counts={counts}
|
|
41
41
|
onSelectTab={() => {}}
|
|
@@ -47,7 +47,7 @@ describe('ConsoleTabBar', () => {
|
|
|
47
47
|
it('reports the selected tab', () => {
|
|
48
48
|
const onSelectTab = jest.fn();
|
|
49
49
|
const { getByText } = render(
|
|
50
|
-
<
|
|
50
|
+
<ConsoleTabList
|
|
51
51
|
activeTab="prs"
|
|
52
52
|
counts={counts}
|
|
53
53
|
onSelectTab={onSelectTab}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CONSOLE_TABS, type ConsoleTabName } from '
|
|
1
|
+
import { CONSOLE_TABS, type ConsoleTabName } from '../../logic/types';
|
|
2
2
|
|
|
3
3
|
export type ConsoleTabBarProps = {
|
|
4
4
|
activeTab: ConsoleTabName;
|
|
@@ -6,7 +6,7 @@ export type ConsoleTabBarProps = {
|
|
|
6
6
|
onSelectTab: (tab: ConsoleTabName) => void;
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
export const
|
|
9
|
+
export const ConsoleTabList = ({
|
|
10
10
|
activeTab,
|
|
11
11
|
counts,
|
|
12
12
|
onSelectTab,
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { buildConsoleListRows } from '../../logic/grouping';
|
|
2
3
|
import {
|
|
3
4
|
consoleListItemsFixture,
|
|
4
5
|
consoleStoryColorsFixture,
|
|
5
|
-
} from '
|
|
6
|
-
import {
|
|
7
|
-
import { ConsoleListView } from './ConsoleListView';
|
|
6
|
+
} from '../../testing/fixtures';
|
|
7
|
+
import { ConsoleItemList } from './ConsoleItemList';
|
|
8
8
|
|
|
9
|
-
const meta: Meta<typeof
|
|
10
|
-
title: 'Console/
|
|
11
|
-
component:
|
|
9
|
+
const meta: Meta<typeof ConsoleItemList> = {
|
|
10
|
+
title: 'Console/ConsoleItemList',
|
|
11
|
+
component: ConsoleItemList,
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
export default meta;
|
|
15
15
|
|
|
16
|
-
type Story = StoryObj<typeof
|
|
16
|
+
type Story = StoryObj<typeof ConsoleItemList>;
|
|
17
17
|
|
|
18
18
|
export const WithStoryGroups: Story = {
|
|
19
19
|
args: {
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { fireEvent, render } from '@testing-library/react';
|
|
2
|
+
import { buildConsoleListRows } from '../../logic/grouping';
|
|
2
3
|
import {
|
|
3
4
|
consoleListItemsFixture,
|
|
4
5
|
consoleStoryColorsFixture,
|
|
5
|
-
} from '
|
|
6
|
-
import {
|
|
7
|
-
import { ConsoleListView } from './ConsoleListView';
|
|
6
|
+
} from '../../testing/fixtures';
|
|
7
|
+
import { ConsoleItemList } from './ConsoleItemList';
|
|
8
8
|
|
|
9
9
|
const rows = buildConsoleListRows(consoleListItemsFixture, {});
|
|
10
10
|
|
|
11
|
-
describe('
|
|
11
|
+
describe('ConsoleItemList', () => {
|
|
12
12
|
it('renders group headers and items in array order', () => {
|
|
13
13
|
const { getAllByRole, getByText } = render(
|
|
14
|
-
<
|
|
14
|
+
<ConsoleItemList
|
|
15
15
|
rows={rows}
|
|
16
16
|
storyColors={consoleStoryColorsFixture}
|
|
17
17
|
activeItemId={null}
|
|
@@ -28,7 +28,7 @@ describe('ConsoleListView', () => {
|
|
|
28
28
|
it('reports the selected item', () => {
|
|
29
29
|
const onSelectItem = jest.fn();
|
|
30
30
|
const { getByText } = render(
|
|
31
|
-
<
|
|
31
|
+
<ConsoleItemList
|
|
32
32
|
rows={rows}
|
|
33
33
|
storyColors={consoleStoryColorsFixture}
|
|
34
34
|
activeItemId={null}
|
|
@@ -45,7 +45,7 @@ describe('ConsoleListView', () => {
|
|
|
45
45
|
|
|
46
46
|
it('shows the loading state', () => {
|
|
47
47
|
const { getByText } = render(
|
|
48
|
-
<
|
|
48
|
+
<ConsoleItemList
|
|
49
49
|
rows={[]}
|
|
50
50
|
storyColors={{}}
|
|
51
51
|
activeItemId={null}
|
|
@@ -59,7 +59,7 @@ describe('ConsoleListView', () => {
|
|
|
59
59
|
|
|
60
60
|
it('shows the empty state', () => {
|
|
61
61
|
const { getByText } = render(
|
|
62
|
-
<
|
|
62
|
+
<ConsoleItemList
|
|
63
63
|
rows={[]}
|
|
64
64
|
storyColors={{}}
|
|
65
65
|
activeItemId={null}
|
|
@@ -73,7 +73,7 @@ describe('ConsoleListView', () => {
|
|
|
73
73
|
|
|
74
74
|
it('shows the error state', () => {
|
|
75
75
|
const { getByRole } = render(
|
|
76
|
-
<
|
|
76
|
+
<ConsoleItemList
|
|
77
77
|
rows={[]}
|
|
78
78
|
storyColors={{}}
|
|
79
79
|
activeItemId={null}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import {
|
|
2
|
+
type ConsoleListRow,
|
|
3
|
+
resolveStoryColorEnum,
|
|
4
|
+
} from '../../logic/grouping';
|
|
5
|
+
import type {
|
|
6
|
+
ConsoleListItem,
|
|
7
|
+
ConsoleStoryColorSource,
|
|
8
|
+
} from '../../logic/types';
|
|
9
|
+
import { ConsoleItemSummary } from './ConsoleItemSummary';
|
|
10
|
+
import { ConsoleStorySummary } from './ConsoleStorySummary';
|
|
5
11
|
|
|
6
12
|
export type ConsoleListViewProps = {
|
|
7
13
|
rows: ConsoleListRow[];
|
|
@@ -12,7 +18,7 @@ export type ConsoleListViewProps = {
|
|
|
12
18
|
onSelectItem: (item: ConsoleListItem) => void;
|
|
13
19
|
};
|
|
14
20
|
|
|
15
|
-
export const
|
|
21
|
+
export const ConsoleItemList = ({
|
|
16
22
|
rows,
|
|
17
23
|
storyColors,
|
|
18
24
|
activeItemId,
|
|
@@ -41,7 +47,7 @@ export const ConsoleListView = ({
|
|
|
41
47
|
{rows.map((row) =>
|
|
42
48
|
row.kind === 'group-header' ? (
|
|
43
49
|
<li key={`group:${row.story}`} className="console-list-group">
|
|
44
|
-
<
|
|
50
|
+
<ConsoleStorySummary
|
|
45
51
|
story={row.story}
|
|
46
52
|
count={row.count}
|
|
47
53
|
colorEnum={resolveStoryColorEnum(storyColors, row.story)}
|
|
@@ -49,7 +55,7 @@ export const ConsoleListView = ({
|
|
|
49
55
|
</li>
|
|
50
56
|
) : (
|
|
51
57
|
<li key={row.item.itemId} className="console-list-row">
|
|
52
|
-
<
|
|
58
|
+
<ConsoleItemSummary
|
|
53
59
|
item={row.item}
|
|
54
60
|
isActive={row.item.itemId === activeItemId}
|
|
55
61
|
onSelect={onSelectItem}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
-
import { consoleListItemsFixture } from '
|
|
3
|
-
import {
|
|
2
|
+
import { consoleListItemsFixture } from '../../testing/fixtures';
|
|
3
|
+
import { ConsoleItemSummary } from './ConsoleItemSummary';
|
|
4
4
|
|
|
5
|
-
const meta: Meta<typeof
|
|
6
|
-
title: 'Console/
|
|
7
|
-
component:
|
|
5
|
+
const meta: Meta<typeof ConsoleItemSummary> = {
|
|
6
|
+
title: 'Console/ConsoleItemSummary',
|
|
7
|
+
component: ConsoleItemSummary,
|
|
8
8
|
args: { onSelect: () => {} },
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export default meta;
|
|
12
12
|
|
|
13
|
-
type Story = StoryObj<typeof
|
|
13
|
+
type Story = StoryObj<typeof ConsoleItemSummary>;
|
|
14
14
|
|
|
15
15
|
export const PullRequestRow: Story = {
|
|
16
16
|
args: { item: consoleListItemsFixture[0], isActive: false },
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { fireEvent, render } from '@testing-library/react';
|
|
2
|
-
import { consoleListItemsFixture } from '
|
|
3
|
-
import {
|
|
2
|
+
import { consoleListItemsFixture } from '../../testing/fixtures';
|
|
3
|
+
import { ConsoleItemSummary } from './ConsoleItemSummary';
|
|
4
4
|
|
|
5
5
|
const prItem = consoleListItemsFixture[0];
|
|
6
6
|
const issueItem = consoleListItemsFixture[2];
|
|
7
7
|
|
|
8
|
-
describe('
|
|
8
|
+
describe('ConsoleItemSummary', () => {
|
|
9
9
|
it('renders a PR number with the PR prefix', () => {
|
|
10
10
|
const { getByText } = render(
|
|
11
|
-
<
|
|
11
|
+
<ConsoleItemSummary item={prItem} isActive={false} onSelect={() => {}} />,
|
|
12
12
|
);
|
|
13
13
|
expect(getByText(`PR #${prItem.number}`)).toBeInTheDocument();
|
|
14
14
|
expect(getByText(prItem.title)).toBeInTheDocument();
|
|
@@ -16,7 +16,7 @@ describe('ConsoleListItemRow', () => {
|
|
|
16
16
|
|
|
17
17
|
it('renders an issue number with the hash prefix', () => {
|
|
18
18
|
const { getByText } = render(
|
|
19
|
-
<
|
|
19
|
+
<ConsoleItemSummary
|
|
20
20
|
item={issueItem}
|
|
21
21
|
isActive={false}
|
|
22
22
|
onSelect={() => {}}
|
|
@@ -28,7 +28,7 @@ describe('ConsoleListItemRow', () => {
|
|
|
28
28
|
it('reports the item on click', () => {
|
|
29
29
|
const onSelect = jest.fn();
|
|
30
30
|
const { getByRole } = render(
|
|
31
|
-
<
|
|
31
|
+
<ConsoleItemSummary item={prItem} isActive={false} onSelect={onSelect} />,
|
|
32
32
|
);
|
|
33
33
|
fireEvent.click(getByRole('button'));
|
|
34
34
|
expect(onSelect).toHaveBeenCalledWith(prItem);
|
|
@@ -36,7 +36,7 @@ describe('ConsoleListItemRow', () => {
|
|
|
36
36
|
|
|
37
37
|
it('marks the active row', () => {
|
|
38
38
|
const { getByRole } = render(
|
|
39
|
-
<
|
|
39
|
+
<ConsoleItemSummary item={prItem} isActive onSelect={() => {}} />,
|
|
40
40
|
);
|
|
41
41
|
expect(getByRole('button')).toHaveAttribute('data-active', 'true');
|
|
42
42
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ConsoleListItem } from '
|
|
2
|
-
import { ConsoleItemIcon } from '
|
|
1
|
+
import type { ConsoleListItem } from '../../logic/types';
|
|
2
|
+
import { ConsoleItemIcon } from '../detail/ConsoleItemIcon';
|
|
3
3
|
|
|
4
4
|
export type ConsoleListItemRowProps = {
|
|
5
5
|
item: ConsoleListItem;
|
|
@@ -7,7 +7,7 @@ export type ConsoleListItemRowProps = {
|
|
|
7
7
|
onSelect: (item: ConsoleListItem) => void;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
-
export const
|
|
10
|
+
export const ConsoleItemSummary = ({
|
|
11
11
|
item,
|
|
12
12
|
isActive,
|
|
13
13
|
onSelect,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
-
import {
|
|
2
|
+
import { ConsoleStorySummary } from './ConsoleStorySummary';
|
|
3
3
|
|
|
4
|
-
const meta: Meta<typeof
|
|
5
|
-
title: 'Console/
|
|
6
|
-
component:
|
|
4
|
+
const meta: Meta<typeof ConsoleStorySummary> = {
|
|
5
|
+
title: 'Console/ConsoleStorySummary',
|
|
6
|
+
component: ConsoleStorySummary,
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
export default meta;
|
|
10
10
|
|
|
11
|
-
type Story = StoryObj<typeof
|
|
11
|
+
type Story = StoryObj<typeof ConsoleStorySummary>;
|
|
12
12
|
|
|
13
13
|
export const ConsolePortStory: Story = {
|
|
14
14
|
args: { story: 'TDPM Console port', count: 4, colorEnum: 'BLUE' },
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { render } from '@testing-library/react';
|
|
2
|
-
import {
|
|
2
|
+
import { ConsoleStorySummary } from './ConsoleStorySummary';
|
|
3
3
|
|
|
4
|
-
describe('
|
|
4
|
+
describe('ConsoleStorySummary', () => {
|
|
5
5
|
it('renders the story name and count', () => {
|
|
6
6
|
const { getByText } = render(
|
|
7
|
-
<
|
|
7
|
+
<ConsoleStorySummary
|
|
8
8
|
story="TDPM Console port"
|
|
9
9
|
count={4}
|
|
10
10
|
colorEnum="BLUE"
|
|
@@ -16,7 +16,7 @@ describe('ConsoleStoryGroupHeader', () => {
|
|
|
16
16
|
|
|
17
17
|
it('applies the dot color from the enum', () => {
|
|
18
18
|
const { container } = render(
|
|
19
|
-
<
|
|
19
|
+
<ConsoleStorySummary story="s" count={1} colorEnum="GREEN" />,
|
|
20
20
|
);
|
|
21
21
|
const dot = container.querySelector('.console-story-dot');
|
|
22
22
|
expect(dot).toHaveStyle({ backgroundColor: '#3fb950' });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { colorFromEnum } from '
|
|
2
|
-
import type { ConsoleColor } from '
|
|
1
|
+
import { colorFromEnum } from '../../logic/colors';
|
|
2
|
+
import type { ConsoleColor } from '../../logic/types';
|
|
3
3
|
|
|
4
4
|
export type ConsoleStoryGroupHeaderProps = {
|
|
5
5
|
story: string;
|
|
@@ -7,7 +7,7 @@ export type ConsoleStoryGroupHeaderProps = {
|
|
|
7
7
|
colorEnum: ConsoleColor | null;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
-
export const
|
|
10
|
+
export const ConsoleStorySummary = ({
|
|
11
11
|
story,
|
|
12
12
|
count,
|
|
13
13
|
colorEnum,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { ConsoleCloseActions } from './ConsoleCloseActions';
|
|
3
|
+
|
|
4
|
+
const meta: Meta<typeof ConsoleCloseActions> = {
|
|
5
|
+
title: 'Console/ConsoleCloseActions',
|
|
6
|
+
component: ConsoleCloseActions,
|
|
7
|
+
args: { onClose: () => {} },
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default meta;
|
|
11
|
+
|
|
12
|
+
type Story = StoryObj<typeof ConsoleCloseActions>;
|
|
13
|
+
|
|
14
|
+
export const Default: Story = {};
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { fireEvent, render } from '@testing-library/react';
|
|
2
|
-
import {
|
|
2
|
+
import { ConsoleCloseActions } from './ConsoleCloseActions';
|
|
3
3
|
|
|
4
|
-
describe('
|
|
4
|
+
describe('ConsoleCloseActions', () => {
|
|
5
5
|
it('renders both close buttons', () => {
|
|
6
|
-
const { getByText } = render(
|
|
7
|
-
<ConsoleCloseButtonGroup onClose={() => {}} />,
|
|
8
|
-
);
|
|
6
|
+
const { getByText } = render(<ConsoleCloseActions onClose={() => {}} />);
|
|
9
7
|
expect(getByText('Close')).toBeInTheDocument();
|
|
10
8
|
expect(getByText('Close as not planned')).toBeInTheDocument();
|
|
11
9
|
});
|
|
12
10
|
|
|
13
11
|
it('reports the close actions', () => {
|
|
14
12
|
const onClose = jest.fn();
|
|
15
|
-
const { getByText } = render(<
|
|
13
|
+
const { getByText } = render(<ConsoleCloseActions onClose={onClose} />);
|
|
16
14
|
fireEvent.click(getByText('Close'));
|
|
17
15
|
fireEvent.click(getByText('Close as not planned'));
|
|
18
16
|
expect(onClose.mock.calls.map((call) => call[0])).toEqual([
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { ConsoleCloseAction } from '
|
|
1
|
+
import type { ConsoleCloseAction } from '../../logic/operations';
|
|
2
2
|
|
|
3
3
|
export type ConsoleCloseButtonGroupProps = {
|
|
4
4
|
onClose: (action: ConsoleCloseAction) => void;
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
-
export const
|
|
7
|
+
export const ConsoleCloseActions = ({
|
|
8
8
|
onClose,
|
|
9
9
|
}: ConsoleCloseButtonGroupProps) => (
|
|
10
10
|
<div className="console-op-group">
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { ConsoleNextActionDateActions } from './ConsoleNextActionDateActions';
|
|
3
|
+
|
|
4
|
+
const meta: Meta<typeof ConsoleNextActionDateActions> = {
|
|
5
|
+
title: 'Console/ConsoleNextActionDateActions',
|
|
6
|
+
component: ConsoleNextActionDateActions,
|
|
7
|
+
args: { onSetNextActionDate: () => {} },
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default meta;
|
|
11
|
+
|
|
12
|
+
type Story = StoryObj<typeof ConsoleNextActionDateActions>;
|
|
13
|
+
|
|
14
|
+
export const StandardTab: Story = {
|
|
15
|
+
args: { isTodoByHuman: false },
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const TodoByHumanTab: Story = {
|
|
19
|
+
args: { isTodoByHuman: true },
|
|
20
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { fireEvent, render } from '@testing-library/react';
|
|
2
|
-
import {
|
|
2
|
+
import { ConsoleNextActionDateActions } from './ConsoleNextActionDateActions';
|
|
3
3
|
|
|
4
|
-
describe('
|
|
4
|
+
describe('ConsoleNextActionDateActions', () => {
|
|
5
5
|
it('shows +1 day and +1 week outside the todo-by-human tab', () => {
|
|
6
6
|
const { getByText, queryByText } = render(
|
|
7
|
-
<
|
|
7
|
+
<ConsoleNextActionDateActions
|
|
8
8
|
isTodoByHuman={false}
|
|
9
9
|
onSetNextActionDate={() => {}}
|
|
10
10
|
/>,
|
|
@@ -16,7 +16,7 @@ describe('ConsoleNextActionDateGroup', () => {
|
|
|
16
16
|
|
|
17
17
|
it('shows +1 week and skip on the todo-by-human tab', () => {
|
|
18
18
|
const { getByText } = render(
|
|
19
|
-
<
|
|
19
|
+
<ConsoleNextActionDateActions
|
|
20
20
|
isTodoByHuman
|
|
21
21
|
onSetNextActionDate={() => {}}
|
|
22
22
|
/>,
|
|
@@ -27,7 +27,7 @@ describe('ConsoleNextActionDateGroup', () => {
|
|
|
27
27
|
it('reports the snooze actions', () => {
|
|
28
28
|
const onSetNextActionDate = jest.fn();
|
|
29
29
|
const { getByText } = render(
|
|
30
|
-
<
|
|
30
|
+
<ConsoleNextActionDateActions
|
|
31
31
|
isTodoByHuman={false}
|
|
32
32
|
onSetNextActionDate={onSetNextActionDate}
|
|
33
33
|
/>,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { ConsoleNextActionDateAction } from '
|
|
1
|
+
import type { ConsoleNextActionDateAction } from '../../logic/operations';
|
|
2
2
|
|
|
3
3
|
export type ConsoleNextActionDateGroupProps = {
|
|
4
4
|
isTodoByHuman: boolean;
|
|
5
5
|
onSetNextActionDate: (action: ConsoleNextActionDateAction) => void;
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
export const
|
|
8
|
+
export const ConsoleNextActionDateActions = ({
|
|
9
9
|
isTodoByHuman,
|
|
10
10
|
onSetNextActionDate,
|
|
11
11
|
}: ConsoleNextActionDateGroupProps) => (
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import type { ConsoleOperationHandlers } from '../../logic/operations';
|
|
2
3
|
import {
|
|
3
4
|
consoleListItemsFixture,
|
|
4
5
|
consoleStatusOptionsFixture,
|
|
5
6
|
consoleStoryOptionsFixture,
|
|
6
|
-
} from '
|
|
7
|
-
import
|
|
8
|
-
import { ConsoleOperationBar } from './ConsoleOperationBar';
|
|
7
|
+
} from '../../testing/fixtures';
|
|
8
|
+
import { ConsoleOperationMenu } from './ConsoleOperationMenu';
|
|
9
9
|
|
|
10
10
|
const handlers: ConsoleOperationHandlers = {
|
|
11
11
|
onReview: () => {},
|
|
@@ -16,9 +16,9 @@ const handlers: ConsoleOperationHandlers = {
|
|
|
16
16
|
onClose: () => {},
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
const meta: Meta<typeof
|
|
20
|
-
title: 'Console/
|
|
21
|
-
component:
|
|
19
|
+
const meta: Meta<typeof ConsoleOperationMenu> = {
|
|
20
|
+
title: 'Console/ConsoleOperationMenu',
|
|
21
|
+
component: ConsoleOperationMenu,
|
|
22
22
|
args: {
|
|
23
23
|
statusOptions: consoleStatusOptionsFixture,
|
|
24
24
|
storyOptions: consoleStoryOptionsFixture,
|
|
@@ -28,7 +28,7 @@ const meta: Meta<typeof ConsoleOperationBar> = {
|
|
|
28
28
|
|
|
29
29
|
export default meta;
|
|
30
30
|
|
|
31
|
-
type Story = StoryObj<typeof
|
|
31
|
+
type Story = StoryObj<typeof ConsoleOperationMenu>;
|
|
32
32
|
|
|
33
33
|
export const PrsTabPullRequest: Story = {
|
|
34
34
|
args: {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { render } from '@testing-library/react';
|
|
2
|
+
import type { ConsoleOperationHandlers } from '../../logic/operations';
|
|
2
3
|
import {
|
|
3
4
|
consoleListItemsFixture,
|
|
4
5
|
consoleStatusOptionsFixture,
|
|
5
6
|
consoleStoryOptionsFixture,
|
|
6
|
-
} from '
|
|
7
|
-
import
|
|
8
|
-
import { ConsoleOperationBar } from './ConsoleOperationBar';
|
|
7
|
+
} from '../../testing/fixtures';
|
|
8
|
+
import { ConsoleOperationMenu } from './ConsoleOperationMenu';
|
|
9
9
|
|
|
10
10
|
const handlers: ConsoleOperationHandlers = {
|
|
11
11
|
onReview: jest.fn(),
|
|
@@ -19,10 +19,10 @@ const handlers: ConsoleOperationHandlers = {
|
|
|
19
19
|
const prItem = consoleListItemsFixture[0];
|
|
20
20
|
const issueItem = consoleListItemsFixture[2];
|
|
21
21
|
|
|
22
|
-
describe('
|
|
22
|
+
describe('ConsoleOperationMenu', () => {
|
|
23
23
|
it('shows the review group for a PR and hides story and close groups outside triage', () => {
|
|
24
24
|
const { getByText, queryByText } = render(
|
|
25
|
-
<
|
|
25
|
+
<ConsoleOperationMenu
|
|
26
26
|
tab="prs"
|
|
27
27
|
item={prItem}
|
|
28
28
|
hasPullRequest
|
|
@@ -40,7 +40,7 @@ describe('ConsoleOperationBar', () => {
|
|
|
40
40
|
|
|
41
41
|
it('shows the story group on the triage tab and the close group for an issue', () => {
|
|
42
42
|
const { getByText } = render(
|
|
43
|
-
<
|
|
43
|
+
<ConsoleOperationMenu
|
|
44
44
|
tab="triage"
|
|
45
45
|
item={issueItem}
|
|
46
46
|
hasPullRequest={false}
|
|
@@ -56,7 +56,7 @@ describe('ConsoleOperationBar', () => {
|
|
|
56
56
|
|
|
57
57
|
it('shows +1 week and skip on the todo-by-human tab', () => {
|
|
58
58
|
const { getByText } = render(
|
|
59
|
-
<
|
|
59
|
+
<ConsoleOperationMenu
|
|
60
60
|
tab="todo-by-human"
|
|
61
61
|
item={issueItem}
|
|
62
62
|
hasPullRequest={false}
|
|
@@ -70,7 +70,7 @@ describe('ConsoleOperationBar', () => {
|
|
|
70
70
|
|
|
71
71
|
it('hides the review group when there is no pull request', () => {
|
|
72
72
|
const { queryByText } = render(
|
|
73
|
-
<
|
|
73
|
+
<ConsoleOperationMenu
|
|
74
74
|
tab="unread"
|
|
75
75
|
item={issueItem}
|
|
76
76
|
hasPullRequest={false}
|