Skip to content

Commit cb6a238

Browse files
committed
WIP fixing tests
1 parent 80334a3 commit cb6a238

File tree

9 files changed

+170
-124
lines changed

9 files changed

+170
-124
lines changed

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

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ import { getMockedLabel, labels, mockedLongLabels } from '../../../../test-utils
1515
import { getMockedTask, mockedTaskContextProps } from '../../../../test-utils/mocked-items-factory/mocked-tasks';
1616
import { providersRender as render } from '../../../../test-utils/required-providers-render';
1717
import { getMockedImage } from '../../../../test-utils/utils';
18-
import { AnnotationToolContext } from '../../core/annotation-tool-context.interface';
18+
import { AnnotationSceneProvider } from '../../providers/annotation-scene-provider/annotation-scene-provider.component';
19+
import { useAnnotationToolContext } from '../../providers/annotation-tool-provider/annotation-tool-provider.component';
1920
import { useROI } from '../../providers/region-of-interest-provider/region-of-interest-provider.component';
2021
import { useTaskChain } from '../../providers/task-chain-provider/task-chain-provider.component';
2122
import { TaskContextProps, useTask } from '../../providers/task-provider/task-provider.component';
@@ -44,26 +45,23 @@ jest.mock('../../providers/region-of-interest-provider/region-of-interest-provid
4445
})),
4546
}));
4647

48+
jest.mock('../../providers/annotation-tool-provider/annotation-tool-provider.component', () => ({
49+
...jest.requireActual('../../providers/annotation-tool-provider/annotation-tool-provider.component'),
50+
useAnnotationToolContext: jest.fn(),
51+
}));
52+
4753
describe('Labels', (): void => {
4854
jest.mocked(useTaskChain).mockImplementation(() => {
4955
return { inputs: [], outputs: [] };
5056
});
5157

52-
const renderApp = (
53-
annotation: Annotation,
54-
annotationToolContext: AnnotationToolContext,
55-
tasksHook: Partial<TaskContextProps> = {},
56-
showOptions = true
57-
) => {
58+
const renderApp = (annotation: Annotation, tasksHook: Partial<TaskContextProps> = {}, showOptions = true) => {
5859
jest.mocked(useTask).mockReturnValue(mockedTaskContextProps(tasksHook));
5960

6061
render(
61-
<Labels
62-
annotation={annotation}
63-
showOptions={showOptions}
64-
annotationToolContext={annotationToolContext}
65-
canEditAnnotationLabel
66-
/>
62+
<AnnotationSceneProvider annotations={[]} labels={[]}>
63+
<Labels annotation={annotation} showOptions={showOptions} canEditAnnotationLabel />)
64+
</AnnotationSceneProvider>
6765
);
6866
};
6967

@@ -73,7 +71,9 @@ describe('Labels', (): void => {
7371
});
7472
const annotationToolContext = fakeAnnotationToolContext({ annotations: [annotation], labels });
7573

76-
renderApp(annotation, annotationToolContext);
74+
jest.mocked(useAnnotationToolContext).mockReturnValue(annotationToolContext);
75+
76+
renderApp(annotation);
7777

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

@@ -128,7 +128,7 @@ describe('Labels', (): void => {
128128
image: getMockedImage(roi),
129129
});
130130

131-
renderApp(annotation, annotationToolContext, { tasks, selectedTask: tasks[0] });
131+
renderApp(annotation, { tasks, selectedTask: tasks[0] });
132132

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

@@ -168,12 +168,14 @@ describe('Labels', (): void => {
168168
labels,
169169
});
170170

171+
jest.mocked(useAnnotationToolContext).mockReturnValue(annotationToolContext);
172+
171173
jest.mocked(useROI).mockReturnValue({
172174
roi,
173175
image: getMockedImage(roi),
174176
});
175177

176-
renderApp(annotation, annotationToolContext, { tasks, selectedTask: tasks[0] });
178+
renderApp(annotation, { tasks, selectedTask: tasks[0] });
177179

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

@@ -211,12 +213,14 @@ describe('Labels', (): void => {
211213
labels,
212214
});
213215

216+
jest.mocked(useAnnotationToolContext).mockReturnValue(annotationToolContext);
217+
214218
jest.mocked(useROI).mockReturnValue({
215219
roi,
216220
image: getMockedImage(roi),
217221
});
218222

219-
renderApp(annotation, annotationToolContext, { tasks, selectedTask: tasks[0] });
223+
renderApp(annotation, { tasks, selectedTask: tasks[0] });
220224

221225
expect(screen.getByText('Empty')).toBeInTheDocument();
222226
expect(screen.queryByText('Empty (100%)')).not.toBeInTheDocument();
@@ -228,7 +232,7 @@ describe('Labels', (): void => {
228232
});
229233
const annotationToolContext = fakeAnnotationToolContext({ annotations: [annotation], labels });
230234

231-
renderApp(annotation, annotationToolContext, { tasks: [getMockedTask({ labels })] });
235+
renderApp(annotation, { tasks: [getMockedTask({ labels })] });
232236

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

@@ -259,8 +263,9 @@ describe('Labels', (): void => {
259263
];
260264
const mockedAnnotation = getMockedAnnotation({ labels: mockedAnnotationLabels });
261265
const annotationToolContext = fakeAnnotationToolContext({ annotations: [mockedAnnotation], labels });
266+
jest.mocked(useAnnotationToolContext).mockReturnValue(annotationToolContext);
262267

263-
renderApp(mockedAnnotation, annotationToolContext, { tasks: [getMockedTask({ labels })] });
268+
renderApp(mockedAnnotation, { tasks: [getMockedTask({ labels })] });
264269

265270
expect(screen.getByText(mockedLongLabels[0].name)).toHaveStyle('text-overflow: ellipsis');
266271
});
@@ -276,8 +281,9 @@ describe('Labels', (): void => {
276281
];
277282
const mockedAnnotation = getMockedAnnotation({ labels: mockedAnnotationLabels });
278283
const annotationToolContext = fakeAnnotationToolContext({ annotations: [mockedAnnotation], labels });
284+
jest.mocked(useAnnotationToolContext).mockReturnValue(annotationToolContext);
279285

280-
renderApp(mockedAnnotation, annotationToolContext, { tasks: [getMockedTask({ labels })] });
286+
renderApp(mockedAnnotation, { tasks: [getMockedTask({ labels })] });
281287

282288
expect(screen.getByText('princess')).toBeInTheDocument();
283289
});
@@ -287,8 +293,9 @@ describe('Labels', (): void => {
287293
labels: [labelFromUser(labels[0]), labelFromUser(labels[1]), labelFromUser(labels[3])],
288294
});
289295
const annotationToolContext = fakeAnnotationToolContext({ annotations: [annotation], labels });
296+
jest.mocked(useAnnotationToolContext).mockReturnValue(annotationToolContext);
290297

291-
renderApp(annotation, annotationToolContext, { tasks: [getMockedTask({ labels })] }, false);
298+
renderApp(annotation, { tasks: [getMockedTask({ labels })] }, false);
292299

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

@@ -332,13 +339,14 @@ describe('Labels', (): void => {
332339
const annotationToolContext = fakeAnnotationToolContext({
333340
annotations: [annotation],
334341
});
342+
jest.mocked(useAnnotationToolContext).mockReturnValue(annotationToolContext);
335343

336344
jest.mocked(useROI).mockReturnValue({
337345
roi,
338346
image: getMockedImage(roi),
339347
});
340348

341-
renderApp(annotation, annotationToolContext, { tasks, selectedTask: tasks[0] });
349+
renderApp(annotation, { tasks, selectedTask: tasks[0] });
342350

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

@@ -362,8 +370,9 @@ describe('Labels', (): void => {
362370
const annotationToolContext = fakeAnnotationToolContext({
363371
annotations: [annotation],
364372
});
373+
jest.mocked(useAnnotationToolContext).mockReturnValue(annotationToolContext);
365374

366-
renderApp(annotation, annotationToolContext, { tasks, selectedTask: tasks[0] });
375+
renderApp(annotation, { tasks, selectedTask: tasks[0] });
367376

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

web_ui/src/pages/annotator/annotation/labels/shape-label.test.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,24 @@ import { screen } from '@testing-library/react';
66
import { Annotation } from '../../../../core/annotations/annotation.interface';
77
import { ShapeType } from '../../../../core/annotations/shapetype.enum';
88
import { SelectedProvider } from '../../../../providers/selected-provider/selected-provider.component';
9-
import { fakeAnnotationToolContext } from '../../../../test-utils/fake-annotator-context';
109
import { getMockedAnnotation } from '../../../../test-utils/mocked-items-factory/mocked-annotations';
1110
import { getMockedKeypointNode } from '../../../../test-utils/mocked-items-factory/mocked-keypoint';
1211
import { getMockedLabel } from '../../../../test-utils/mocked-items-factory/mocked-labels';
12+
import { AnnotationToolProvider } from '../../providers/annotation-tool-provider/annotation-tool-provider.component';
1313
import { TaskProvider } from '../../providers/task-provider/task-provider.component';
1414
import { annotatorRender } from '../../test-utils/annotator-render';
1515
import { ShapeLabel } from './shape-label.component';
1616

1717
describe('ShapeLabel', () => {
1818
const renderApp = async (annotation: Annotation) => {
1919
await annotatorRender(
20-
<TaskProvider>
21-
<SelectedProvider>
22-
<ShapeLabel annotation={annotation} annotationToolContext={fakeAnnotationToolContext({})} />
23-
</SelectedProvider>
24-
</TaskProvider>
20+
<AnnotationToolProvider>
21+
<TaskProvider>
22+
<SelectedProvider>
23+
<ShapeLabel annotation={annotation} />
24+
</SelectedProvider>
25+
</TaskProvider>
26+
</AnnotationToolProvider>
2527
);
2628
};
2729

web_ui/src/pages/annotator/annotation/layers/layers-factory.test.tsx

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import {
1313
useStreamingVideoPlayer,
1414
VideoPlayerPlayerContextProps,
1515
} from '../../components/video-player/streaming-video-player/streaming-video-player-provider.component';
16+
import { AnnotationSceneProvider } from '../../providers/annotation-scene-provider/annotation-scene-provider.component';
17+
import { AnnotationToolProvider } from '../../providers/annotation-tool-provider/annotation-tool-provider.component';
1618
import {
1719
SelectedMediaItemProps,
1820
useSelectedMediaItem,
@@ -62,12 +64,16 @@ describe('LayersFactory', () => {
6264
} as SelectedMediaItemProps);
6365

6466
const response = await annotatorRender(
65-
<LayersFactory
66-
width={100}
67-
height={100}
68-
annotations={mockAnnotations}
69-
annotationToolContext={mockContext}
70-
/>,
67+
<AnnotationSceneProvider annotations={[]} labels={[]}>
68+
<AnnotationToolProvider>
69+
<LayersFactory
70+
width={100}
71+
height={100}
72+
annotations={mockAnnotations}
73+
annotationToolContext={mockContext}
74+
/>
75+
</AnnotationToolProvider>
76+
</AnnotationSceneProvider>,
7177
{ services: { annotationService } }
7278
);
7379

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

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import { providersRender } from '../../../../test-utils/required-providers-rende
1212
import { ProjectProvider } from '../../../project-details/providers/project-provider/project-provider.component';
1313
import { AnnotationSceneProvider } from '../../providers/annotation-scene-provider/annotation-scene-provider.component';
1414
import { AnnotationThresholdProvider } from '../../providers/annotation-threshold-provider/annotation-threshold-provider.component';
15+
import { AnnotationToolProvider } from '../../providers/annotation-tool-provider/annotation-tool-provider.component';
16+
import { AnnotatorProvider } from '../../providers/annotator-provider/annotator-provider.component';
1517
import { PredictionProvider } from '../../providers/prediction-provider/prediction-provider.component';
1618
import { SelectedMediaItemProvider } from '../../providers/selected-media-item-provider/selected-media-item-provider.component';
1719
import { TaskChainProvider } from '../../providers/task-chain-provider/task-chain-provider.component';
@@ -54,24 +56,28 @@ describe('Layers', () => {
5456
<AnnotationSceneProvider annotations={mockContext.scene.annotations} labels={[]}>
5557
<TaskProvider>
5658
<SelectedMediaItemProvider>
57-
<AnnotationThresholdProvider minThreshold={0} selectedTask={null}>
58-
<TaskChainProvider tasks={[]} selectedTask={null} defaultLabel={null}>
59-
<PredictionProvider
60-
settings={getMockedUserProjectSettingsObject()}
61-
explanations={[]}
62-
initPredictions={[]}
63-
userAnnotationScene={mockContext.scene}
64-
>
65-
<Layers
66-
width={100}
67-
height={100}
68-
annotations={mockAnnotations}
69-
annotationToolContext={mockContext}
70-
annotationsFilter={identity}
71-
/>
72-
</PredictionProvider>
73-
</TaskChainProvider>
74-
</AnnotationThresholdProvider>
59+
<AnnotatorProvider>
60+
<AnnotationToolProvider>
61+
<AnnotationThresholdProvider minThreshold={0} selectedTask={null}>
62+
<TaskChainProvider tasks={[]} selectedTask={null} defaultLabel={null}>
63+
<PredictionProvider
64+
settings={getMockedUserProjectSettingsObject()}
65+
explanations={[]}
66+
initPredictions={[]}
67+
userAnnotationScene={mockContext.scene}
68+
>
69+
<Layers
70+
width={100}
71+
height={100}
72+
annotations={mockAnnotations}
73+
annotationToolContext={mockContext}
74+
annotationsFilter={identity}
75+
/>
76+
</PredictionProvider>
77+
</TaskChainProvider>
78+
</AnnotationThresholdProvider>
79+
</AnnotationToolProvider>
80+
</AnnotatorProvider>
7581
</SelectedMediaItemProvider>
7682
</TaskProvider>
7783
</AnnotationSceneProvider>

web_ui/src/pages/annotator/annotator-canvas.test.tsx

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@ import { getMockedAnnotation } from '../../test-utils/mocked-items-factory/mocke
1515
import { getMockedLabel, labels } from '../../test-utils/mocked-items-factory/mocked-labels';
1616
import { getMockedImageMediaItem } from '../../test-utils/mocked-items-factory/mocked-media';
1717
import { getMockedTask, mockedTaskContextProps } from '../../test-utils/mocked-items-factory/mocked-tasks';
18-
import { providersRender as render } from '../../test-utils/required-providers-render';
18+
import { projectRender as render } from '../../test-utils/project-provider-render';
1919
import { getById, getMockedImage } from '../../test-utils/utils';
2020
import { ProjectProvider } from '../project-details/providers/project-provider/project-provider.component';
2121
import { AnnotatorCanvas } from './annotator-canvas.component';
2222
import { AnnotationToolContext } from './core/annotation-tool-context.interface';
2323
import { AnnotationThresholdProvider } from './providers/annotation-threshold-provider/annotation-threshold-provider.component';
24+
import { AnnotationToolProvider } from './providers/annotation-tool-provider/annotation-tool-provider.component';
2425
import { useAnnotatorCanvasSettings } from './providers/annotator-canvas-settings-provider/annotator-canvas-settings-provider.component';
26+
import { AnnotatorProvider } from './providers/annotator-provider/annotator-provider.component';
2527
import {
2628
ExplanationOpacityProvider,
2729
PredictionContextProps,
@@ -39,6 +41,7 @@ jest.mock('react-router-dom', () => ({
3941
}));
4042

4143
jest.mock('./providers/task-chain-provider/task-chain-provider.component', () => ({
44+
...jest.requireActual('./providers/task-chain-provider/task-chain-provider.component'),
4245
useTaskChain: jest.fn(),
4346
}));
4447

@@ -159,11 +162,15 @@ describe('Annotator canvas', (): void => {
159162
<SelectedMediaItemProvider>
160163
<ExplanationOpacityProvider>
161164
<AnnotationThresholdProvider minThreshold={0} selectedTask={null}>
162-
<AnnotatorCanvas
163-
annotationToolContext={annotationToolContext}
164-
selectedMediaItem={selectedMediaItem}
165-
canEditAnnotationLabel
166-
/>
165+
<AnnotatorProvider>
166+
<AnnotationToolProvider>
167+
<AnnotatorCanvas
168+
annotationToolContext={annotationToolContext}
169+
selectedMediaItem={selectedMediaItem}
170+
canEditAnnotationLabel
171+
/>
172+
</AnnotationToolProvider>
173+
</AnnotatorProvider>
167174
</AnnotationThresholdProvider>
168175
</ExplanationOpacityProvider>
169176
</SelectedMediaItemProvider>

0 commit comments

Comments
 (0)