Skip to content

Commit ce0608a

Browse files
committed
Fix test of tests
1 parent cb6a238 commit ce0608a

File tree

6 files changed

+56
-48
lines changed

6 files changed

+56
-48
lines changed

web_ui/src/pages/annotator/annotation/labels/annotation-actions.component.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { Annotation } from '../../../../core/annotations/annotation.interface';
99
import { isAnomalyDomain, isClassificationDomain } from '../../../../core/projects/domains';
1010
import { ANIMATION_PARAMETERS } from '../../../../shared/animation-parameters/animation-parameters';
1111
import { hasEqualId } from '../../../../shared/utils';
12-
import { useAnnotationScene } from '../../providers/annotation-scene-provider/annotation-scene-provider.component';
12+
import { useAnnotationToolContext } from '../../providers/annotation-tool-provider/annotation-tool-provider.component';
1313
import { useROI } from '../../providers/region-of-interest-provider/region-of-interest-provider.component';
1414
import { getGlobalAnnotations } from '../../providers/task-chain-provider/utils';
1515
import { useTask } from '../../providers/task-provider/task-provider.component';
@@ -24,7 +24,9 @@ interface LabelActionsProps {
2424
const useOnRemoveLabels = (annotation: Annotation) => {
2525
const { selectedTask } = useTask();
2626
const { roi } = useROI();
27-
const { annotations, removeAnnotations, removeLabels } = useAnnotationScene();
27+
const {
28+
scene: { annotations, removeAnnotations, removeLabels },
29+
} = useAnnotationToolContext();
2830

2931
if (selectedTask === null) {
3032
return () => removeAnnotations([annotation]);

web_ui/src/pages/annotator/annotation/labels/edit-labels.component.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { isAnomalyDomain } from '../../../../core/projects/domains';
1010
import { TaskLabelTreeSearchPopover } from '../../../../shared/components/task-label-tree-search/task-label-tree-search-popover.component';
1111
import { hasEqualId, runWhenTruthy } from '../../../../shared/utils';
1212
import { SelectionIndicator } from '../../components/labels/label-search/selection-indicator.component';
13-
import { useAnnotationScene } from '../../providers/annotation-scene-provider/annotation-scene-provider.component';
13+
import { useAnnotationToolContext } from '../../providers/annotation-tool-provider/annotation-tool-provider.component';
1414
import { useROI } from '../../providers/region-of-interest-provider/region-of-interest-provider.component';
1515
import { getGlobalAnnotations } from '../../providers/task-chain-provider/utils';
1616
import { useTask } from '../../providers/task-provider/task-provider.component';
@@ -23,7 +23,9 @@ interface EditLabelsProps {
2323
export const EditLabels = ({ annotation, setEditLabels }: EditLabelsProps): JSX.Element => {
2424
const { roi } = useROI();
2525
const { tasks, selectedTask } = useTask();
26-
const { addLabel, removeLabels, annotations } = useAnnotationScene();
26+
const {
27+
scene: { addLabel, removeLabels, annotations },
28+
} = useAnnotationToolContext();
2729

2830
const isAnomalyTask = selectedTask && isAnomalyDomain(selectedTask?.domain);
2931
const globalAnnotations = getGlobalAnnotations(annotations, roi, selectedTask);

web_ui/src/pages/annotator/annotation/labels/labels.test.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ describe('Labels', (): void => {
123123
labels,
124124
});
125125

126+
jest.mocked(useAnnotationToolContext).mockReturnValue(annotationToolContext);
127+
126128
jest.mocked(useROI).mockReturnValue({
127129
roi,
128130
image: getMockedImage(roi),
@@ -232,6 +234,8 @@ describe('Labels', (): void => {
232234
});
233235
const annotationToolContext = fakeAnnotationToolContext({ annotations: [annotation], labels });
234236

237+
jest.mocked(useAnnotationToolContext).mockReturnValue(annotationToolContext);
238+
235239
renderApp(annotation, { tasks: [getMockedTask({ labels })] });
236240

237241
expect(screen.getByRole('list')).toHaveAttribute('id', `${annotation.id}-labels`);

web_ui/src/pages/annotator/tools/edit-tool/edit-circle/edit-circle.test.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,23 @@ import { ProjectProvider } from '../../../../project-details/providers/project-p
1616
import { AnnotationToolContext } from '../../../core/annotation-tool-context.interface';
1717
import { AnnotationSceneProvider } from '../../../providers/annotation-scene-provider/annotation-scene-provider.component';
1818
import { AnnotationToolProvider } from '../../../providers/annotation-tool-provider/annotation-tool-provider.component';
19+
import { AnnotatorProvider } from '../../../providers/annotator-provider/annotator-provider.component';
20+
import { SelectedMediaItemProvider } from '../../../providers/selected-media-item-provider/selected-media-item-provider.component';
1921
import { TaskProvider } from '../../../providers/task-provider/task-provider.component';
2022
import { getMaxCircleRadius } from '../../circle-tool/utils';
2123
import { calculateAnchorPoint, EditCircle as EditCircleTool } from './edit-circle.component';
2224

2325
const mockROI = { x: 0, y: 0, width: 200, height: 200 };
2426
const mockImage = getMockedImage(mockROI);
2527

26-
jest.mock('../../../annotator.component', () => ({
27-
useAnnotator: jest.fn(),
28-
}));
29-
3028
jest.mock('../../../providers/region-of-interest-provider/region-of-interest-provider.component', () => ({
31-
...jest.requireActual('../../../providers/region-of-interest-provider/region-of-interest-provider.component'),
3229
useROI: jest.fn(() => ({
3330
roi: mockROI,
3431
image: mockImage,
3532
})),
3633
}));
3734

3835
jest.mock('./../../../zoom/zoom-provider.component', () => ({
39-
...jest.requireActual('./../../../zoom/zoom-provider.component'),
4036
useZoom: jest.fn(() => ({ zoomState: { zoom: 1.0, translation: { x: 0, y: 0 } } })),
4137
}));
4238

@@ -47,11 +43,15 @@ const renderApp = async (
4743
const result = render(
4844
<ProjectProvider projectIdentifier={getMockedProjectIdentifier()}>
4945
<TaskProvider>
50-
<AnnotationSceneProvider annotations={[]} labels={[]}>
51-
<AnnotationToolProvider>
52-
<EditCircleTool annotationToolContext={annotationToolContext} annotation={annotation} />
53-
</AnnotationToolProvider>
54-
</AnnotationSceneProvider>
46+
<SelectedMediaItemProvider>
47+
<AnnotatorProvider>
48+
<AnnotationSceneProvider annotations={[]} labels={[]}>
49+
<AnnotationToolProvider>
50+
<EditCircleTool annotationToolContext={annotationToolContext} annotation={annotation} />
51+
</AnnotationToolProvider>
52+
</AnnotationSceneProvider>
53+
</AnnotatorProvider>
54+
</SelectedMediaItemProvider>
5555
</TaskProvider>
5656
</ProjectProvider>
5757
);

web_ui/src/pages/annotator/tools/edit-tool/edit-polygon/edit-polygon.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const mockImage = getMockedImage(mockROI);
2929

3030
jest.mock('../../../providers/annotation-scene-provider/annotation-scene-provider.component', () => ({
3131
...jest.requireActual('../../../providers/annotation-scene-provider/annotation-scene-provider.component'),
32-
useAnnotationScene: () => ({ hasShapePointSelected: { current: false } }),
32+
useAnnotationScene: () => ({ hasShapePointSelected: { current: false }, annotations: [] }),
3333
}));
3434

3535
jest.mock('../../../providers/region-of-interest-provider/region-of-interest-provider.component', () => ({

web_ui/src/pages/annotator/tools/edit-tool/edit-tool.test.tsx

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import '@wessberg/pointer-events';
55

6-
import { useRef } from 'react';
6+
import { ReactNode, useRef } from 'react';
77

88
import { fireEvent, screen, waitForElementToBeRemoved } from '@testing-library/react';
99

@@ -25,7 +25,9 @@ import { AnnotationToolContext, ANNOTATOR_MODE } from '../../core/annotation-too
2525
import { useAnnotatorMode } from '../../hooks/use-annotator-mode';
2626
import { AnnotationToolProvider } from '../../providers/annotation-tool-provider/annotation-tool-provider.component';
2727
import { AnnotatorContextMenuProvider } from '../../providers/annotator-context-menu-provider/annotator-context-menu-provider.component';
28+
import { AnnotatorProvider } from '../../providers/annotator-provider/annotator-provider.component';
2829
import { useROI } from '../../providers/region-of-interest-provider/region-of-interest-provider.component';
30+
import { SelectedMediaItemProvider } from '../../providers/selected-media-item-provider/selected-media-item-provider.component';
2931
import { TaskContextProps, TaskProvider, useTask } from '../../providers/task-provider/task-provider.component';
3032
import { EditTool } from './edit-tool.component';
3133

@@ -34,7 +36,8 @@ jest.mock('../../hooks/use-annotator-mode', () => ({
3436
}));
3537

3638
jest.mock('../../providers/annotation-scene-provider/annotation-scene-provider.component', () => ({
37-
useAnnotationScene: () => ({ hasShapePointSelected: { current: false } }),
39+
...jest.requireActual('../../providers/annotation-scene-provider/annotation-scene-provider.component'),
40+
useAnnotationScene: () => ({ annotations: [], hasShapePointSelected: { current: false } }),
3841
}));
3942

4043
const mockROI = { x: 0, y: 0, width: 100, height: 100 };
@@ -56,6 +59,22 @@ jest.mock('../../providers/task-provider/task-provider.component', () => ({
5659
useTask: jest.fn(),
5760
}));
5861

62+
const Wrapper = ({ children }: { children: ReactNode }) => {
63+
return (
64+
<ProjectProvider projectIdentifier={getMockedProjectIdentifier()}>
65+
<TaskProvider>
66+
<SelectedMediaItemProvider>
67+
<AnnotatorProvider>
68+
<AnnotationToolProvider>
69+
<AnnotatorContextMenuProvider>{children}</AnnotatorContextMenuProvider>
70+
</AnnotationToolProvider>
71+
</AnnotatorProvider>
72+
</SelectedMediaItemProvider>
73+
</TaskProvider>
74+
</ProjectProvider>
75+
);
76+
};
77+
5978
const renderApp = async (
6079
annotationToolContext: AnnotationToolContext,
6180
tasksHook: Partial<TaskContextProps> = {},
@@ -68,19 +87,11 @@ const renderApp = async (
6887
});
6988

7089
const result = render(
71-
<AnnotationToolProvider>
72-
<AnnotationToolProvider>
73-
<ProjectProvider projectIdentifier={getMockedProjectIdentifier()}>
74-
<TaskProvider>
75-
<AnnotatorContextMenuProvider>
76-
<svg>
77-
<EditTool annotationToolContext={annotationToolContext} />
78-
</svg>
79-
</AnnotatorContextMenuProvider>
80-
</TaskProvider>
81-
</ProjectProvider>
82-
</AnnotationToolProvider>
83-
</AnnotationToolProvider>
90+
<Wrapper>
91+
<svg>
92+
<EditTool annotationToolContext={annotationToolContext} />
93+
</svg>
94+
</Wrapper>
8495
);
8596

8697
await waitForElementToBeRemoved(screen.getByRole('progressbar'));
@@ -205,15 +216,9 @@ describe('Edit tool', (): void => {
205216
jest.mocked(useTask).mockReturnValue(mockedTaskContextProps({ tasks }));
206217

207218
render(
208-
<AnnotationToolProvider>
209-
<ProjectProvider projectIdentifier={getMockedProjectIdentifier()}>
210-
<TaskProvider>
211-
<AnnotatorContextMenuProvider>
212-
<EditToolApp />
213-
</AnnotatorContextMenuProvider>
214-
</TaskProvider>
215-
</ProjectProvider>
216-
</AnnotationToolProvider>
219+
<Wrapper>
220+
<EditToolApp />
221+
</Wrapper>
217222
);
218223

219224
await waitForElementToBeRemoved(screen.getByRole('progressbar'));
@@ -357,7 +362,7 @@ describe('editing global labels', () => {
357362

358363
const labels = tasks.flatMap((task) => task.labels);
359364

360-
it('does render the shape of a segmentation annotation without labels', () => {
365+
it('does render the shape of a segmentation annotation without labels', async () => {
361366
const roi = { x: 0, y: 0, width: image.width, height: image.height };
362367
jest.mocked(useROI).mockReturnValueOnce({ roi, image: imageData });
363368

@@ -382,13 +387,8 @@ describe('editing global labels', () => {
382387
labels,
383388
selectedTask: tasks[1],
384389
});
385-
render(
386-
<AnnotationToolProvider>
387-
<svg>
388-
<EditTool annotationToolContext={annotationToolContext} />
389-
</svg>
390-
</AnnotationToolProvider>
391-
);
390+
391+
await renderApp(annotationToolContext, { tasks, selectedTask: tasks[1] });
392392

393393
const canvasAnnotations = screen.queryByLabelText('Drag to move shape');
394394
expect(canvasAnnotations).toBeInTheDocument();

0 commit comments

Comments
 (0)