Skip to content

Commit 97f72da

Browse files
committed
fix Pr comments
Signed-off-by: Colorado, Camilo <[email protected]>
1 parent 3ef00d1 commit 97f72da

21 files changed

+150
-138
lines changed

application/ui/src/features/inspect/toolbar/pipeline-configuration.component.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ export const InputOutputSetup = () => {
3737
<Content>
3838
<Tabs aria-label='Dataset import tabs' height={'100%'}>
3939
<TabList>
40-
<Item key='sources' textValue='FoR'>
40+
<Item key='sources' textValue='Sources'>
4141
<Text>Input</Text>
4242
</Item>
43-
<Item key='sinks' textValue='MaR'>
43+
<Item key='sinks' textValue='Sinks'>
4444
<Text>Output</Text>
4545
</Item>
4646
</TabList>

application/ui/src/features/inspect/toolbar/sources/add-source/add-source.component.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import { ReactNode } from 'react';
55

66
import { Button, Form } from '@geti/ui';
7-
import { useConnectSourceToPipeline } from 'src/hooks/use-pipeline.hook';
87

8+
import { useConnectSourceToPipeline } from '../../../../../hooks/use-pipeline.hook';
99
import { useSourceAction } from '../hooks/use-source-action.hook';
1010
import { SourceConfig } from '../util';
1111

application/ui/src/features/inspect/toolbar/sources/add-source/add-source.test.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33

44
import { render, screen, waitFor } from '@testing-library/react';
55
import userEvent from '@testing-library/user-event';
6-
import { useConnectSourceToPipeline } from 'src/hooks/use-pipeline.hook';
76
import { TestProviders } from 'src/providers';
87

8+
import { useConnectSourceToPipeline } from '../../../../../hooks/use-pipeline.hook';
99
import { useSourceMutation } from '../hooks/use-source-mutation.hook';
1010
import { IpCameraFields } from '../ip-camera/ip-camera-fields.component';
11-
import { ipCameraBodyFormatter, ipCameraInitialConfig } from '../ip-camera/utils';
11+
import { getIpCameraInitialConfig, ipCameraBodyFormatter } from '../ip-camera/utils';
1212
import { IPCameraSourceConfig } from '../util';
1313
import { AddSource } from './add-source.component';
1414

1515
vi.mock('../hooks/use-source-mutation.hook');
16-
vi.mock('src/hooks/use-pipeline.hook');
16+
vi.mock('../../../../../hooks/use-pipeline.hook');
1717

1818
describe('add-source', () => {
1919
beforeEach(() => {
@@ -26,6 +26,7 @@ describe('add-source', () => {
2626
stream_url: 'rtsp://192.168.1.100:554/stream',
2727
source_type: 'ip_camera',
2828
auth_required: false,
29+
project_id: '123',
2930
};
3031

3132
it('calls connectToPipelineMutation after successful submit', async () => {
@@ -40,8 +41,8 @@ describe('add-source', () => {
4041
<TestProviders>
4142
<AddSource
4243
onSaved={mockOnSaved}
43-
config={ipCameraInitialConfig}
44-
componentFields={(state: IPCameraSourceConfig) => <IpCameraFields state={state} />}
44+
config={getIpCameraInitialConfig(newConfig.project_id)}
45+
componentFields={(state: IPCameraSourceConfig) => <IpCameraFields defaultState={state} />}
4546
bodyFormatter={ipCameraBodyFormatter}
4647
/>
4748
</TestProviders>
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@ import { VideoFileFields } from './video-file/video-file-fields.component';
99
import { webcamBodyFormatter } from './webcam/utils';
1010
import { WebcamFields } from './webcam/webcam-fields.component';
1111

12-
interface EditSourceFactoryProps {
12+
interface EditSourceFormProps {
1313
config: SourceConfig;
1414
onSaved: () => void;
1515
}
1616

17-
export const EditSourceFactory = ({ config, onSaved }: EditSourceFactoryProps) => {
17+
export const EditSourceForm = ({ config, onSaved }: EditSourceFormProps) => {
1818
if (config.source_type === 'webcam') {
1919
return (
2020
<EditSource
2121
onSaved={onSaved}
2222
config={config}
23-
componentFields={(state) => <WebcamFields state={state} />}
23+
componentFields={(state) => <WebcamFields defaultState={state} />}
2424
bodyFormatter={webcamBodyFormatter}
2525
/>
2626
);
@@ -31,7 +31,7 @@ export const EditSourceFactory = ({ config, onSaved }: EditSourceFactoryProps) =
3131
<EditSource
3232
onSaved={onSaved}
3333
config={config}
34-
componentFields={(state) => <IpCameraFields state={state} />}
34+
componentFields={(state) => <IpCameraFields defaultState={state} />}
3535
bodyFormatter={ipCameraBodyFormatter}
3636
/>
3737
);
@@ -42,7 +42,7 @@ export const EditSourceFactory = ({ config, onSaved }: EditSourceFactoryProps) =
4242
<EditSource
4343
onSaved={onSaved}
4444
config={config}
45-
componentFields={(state: VideoFileSourceConfig) => <VideoFileFields state={state} />}
45+
componentFields={(state: VideoFileSourceConfig) => <VideoFileFields defaultState={state} />}
4646
bodyFormatter={videoFileBodyFormatter}
4747
/>
4848
);
@@ -52,7 +52,7 @@ export const EditSourceFactory = ({ config, onSaved }: EditSourceFactoryProps) =
5252
<EditSource
5353
onSaved={onSaved}
5454
config={config as ImagesFolderSourceConfig}
55-
componentFields={(state: ImagesFolderSourceConfig) => <ImageFolderFields state={state} />}
55+
componentFields={(state: ImagesFolderSourceConfig) => <ImageFolderFields defaultState={state} />}
5656
bodyFormatter={imageFolderBodyFormatter}
5757
/>
5858
);

application/ui/src/features/inspect/toolbar/sources/edit-source/edit-source.component.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import { ReactNode, useRef } from 'react';
55

66
import { Button, ButtonGroup, Divider, Form, View } from '@geti/ui';
7-
import { useConnectSourceToPipeline } from 'src/hooks/use-pipeline.hook';
87

8+
import { useConnectSourceToPipeline } from '../../../../../hooks/use-pipeline.hook';
99
import { useSourceAction } from '../hooks/use-source-action.hook';
1010
import { SourceConfig } from '../util';
1111

application/ui/src/features/inspect/toolbar/sources/edit-source/edit-source.test.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33

44
import { render, screen, waitFor } from '@testing-library/react';
55
import userEvent from '@testing-library/user-event';
6-
import { useConnectSourceToPipeline } from 'src/hooks/use-pipeline.hook';
76
import { TestProviders } from 'src/providers';
87

8+
import { useConnectSourceToPipeline } from '../../../../../hooks/use-pipeline.hook';
99
import { useSourceMutation } from '../hooks/use-source-mutation.hook';
1010
import { IpCameraFields } from '../ip-camera/ip-camera-fields.component';
11-
import { ipCameraBodyFormatter, ipCameraInitialConfig } from '../ip-camera/utils';
11+
import { getIpCameraInitialConfig, ipCameraBodyFormatter } from '../ip-camera/utils';
1212
import { IPCameraSourceConfig } from '../util';
1313
import { EditSource } from './edit-source.component';
1414

1515
vi.mock('../hooks/use-source-mutation.hook');
16-
vi.mock('src/hooks/use-pipeline.hook');
16+
vi.mock('../../../../../hooks/use-pipeline.hook');
1717

1818
describe('EditIpCamera', () => {
1919
beforeEach(() => {
@@ -23,6 +23,7 @@ describe('EditIpCamera', () => {
2323
const updatedConfig: IPCameraSourceConfig = {
2424
id: 'existing-source-id',
2525
name: 'Updated Camera',
26+
project_id: '123',
2627
stream_url: 'rtsp://192.168.1.201:554/stream',
2728
source_type: 'ip_camera',
2829
auth_required: true,
@@ -32,9 +33,9 @@ describe('EditIpCamera', () => {
3233
render(
3334
<TestProviders>
3435
<EditSource
35-
config={ipCameraInitialConfig}
36+
config={getIpCameraInitialConfig(updatedConfig.project_id)}
3637
onSaved={mockOnSaved}
37-
componentFields={(state: IPCameraSourceConfig) => <IpCameraFields state={state} />}
38+
componentFields={(state: IPCameraSourceConfig) => <IpCameraFields defaultState={state} />}
3839
bodyFormatter={ipCameraBodyFormatter}
3940
/>
4041
</TestProviders>

application/ui/src/features/inspect/toolbar/sources/hooks/use-source-mutation.hook.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,15 @@ export const useSourceMutation = (isNewSource: boolean) => {
2727

2828
return async (body: SourceConfig) => {
2929
if (isNewSource) {
30-
const sourcePayload = {
31-
...body,
32-
id: uuid(),
33-
};
30+
const id = uuid();
31+
const sourcePayload = { ...body, id };
3432

35-
const response = await addSource.mutateAsync({
33+
await addSource.mutateAsync({
3634
body: sourcePayload,
3735
params: { path: { project_id: projectId } },
3836
});
3937

40-
return String(response.id);
38+
return id;
4139
}
4240

4341
const response = await updateSource.mutateAsync({

application/ui/src/features/inspect/toolbar/sources/hooks/use-source-mutation.test.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,42 @@ import { HttpResponse } from 'msw';
66
import { http } from 'src/api/utils';
77
import { server } from 'src/msw-node-setup';
88
import { TestProviders } from 'src/providers';
9+
import { v4 as uuid } from 'uuid';
910

1011
import { WebcamSourceConfig } from '../util';
1112
import { useSourceMutation } from './use-source-mutation.hook';
1213

1314
const mockedSource: WebcamSourceConfig = {
1415
id: 'original-id',
16+
project_id: '123',
1517
name: 'Mock Source',
1618
source_type: 'webcam' as const,
1719
device_id: 0,
1820
};
1921

22+
const mockedId = 'uuid-123';
2023
vi.mock('@geti-inspect/hooks', () => ({ useProjectIdentifier: () => ({ projectId: 'project-id-123' }) }));
24+
vi.mock('uuid', () => ({ v4: vi.fn(() => mockedId) }));
2125

2226
describe('useSourceMutation', () => {
27+
beforeEach(() => {
28+
vi.clearAllMocks();
29+
});
30+
2331
it('creates a new source and return its resource id', async () => {
24-
const newResourceId = 'resource-id-123';
2532
const { result } = renderHook(() => useSourceMutation(true), {
2633
wrapper: TestProviders,
2734
});
2835

2936
server.use(
30-
http.post('/api/projects/{project_id}/sources', () =>
31-
HttpResponse.json({ ...mockedSource, id: newResourceId })
32-
),
37+
http.post('/api/projects/{project_id}/sources', () => HttpResponse.json({ ...mockedSource })),
3338
http.patch('/api/projects/{project_id}/sources/{source_id}', () => HttpResponse.error())
3439
);
3540

3641
await act(async () => {
3742
const response = await result.current(mockedSource);
38-
expect(response).toBe(newResourceId);
43+
expect(uuid).toHaveBeenCalled();
44+
expect(response).toBe(mockedId);
3945
});
4046
});
4147

application/ui/src/features/inspect/toolbar/sources/image-folder/image-folder-fields.component.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,22 @@ import { ImagesFolderSourceConfig } from '../util';
99
import classes from './image-folder-fields.module.scss';
1010

1111
type ImageFolderFieldsProps = {
12-
state: ImagesFolderSourceConfig;
12+
defaultState: ImagesFolderSourceConfig;
1313
};
1414

15-
export const ImageFolderFields = ({ state }: ImageFolderFieldsProps) => {
15+
export const ImageFolderFields = ({ defaultState }: ImageFolderFieldsProps) => {
1616
return (
1717
<Flex direction='column' gap='size-200'>
18-
<TextField isHidden label='id' name='id' defaultValue={state.id} />
19-
<TextField isHidden label='project_id' name='project_id' defaultValue={state.project_id} />
20-
<TextField width={'100%'} label='Name' name='name' defaultValue={state.name} />
18+
<TextField isHidden label='id' name='id' defaultValue={defaultState?.id} />
19+
<TextField isHidden label='project_id' name='project_id' defaultValue={defaultState.project_id} />
20+
<TextField width={'100%'} label='Name' name='name' defaultValue={defaultState.name} />
2121

2222
<Flex direction='row' gap='size-200'>
2323
<TextField
2424
flex='1'
2525
label='Images folder path'
2626
name='images_folder_path'
27-
defaultValue={state.images_folder_path}
27+
defaultValue={defaultState.images_folder_path}
2828
/>
2929

3030
<Flex
@@ -41,8 +41,8 @@ export const ImageFolderFields = ({ state }: ImageFolderFieldsProps) => {
4141
<Switch
4242
aria-label='ignore existing images'
4343
name='ignore_existing_images'
44-
defaultSelected={state.ignore_existing_images}
45-
key={state.ignore_existing_images ? 'true' : 'false'}
44+
defaultSelected={defaultState.ignore_existing_images}
45+
key={defaultState.ignore_existing_images ? 'true' : 'false'}
4646
>
4747
Ignore existing images
4848
</Switch>

application/ui/src/features/inspect/toolbar/sources/image-folder/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ export const imageFolderBodyFormatter = (formData: FormData): ImagesFolderSource
1515
source_type: 'images_folder',
1616
project_id: String(formData.get('project_id')),
1717
images_folder_path: String(formData.get('images_folder_path')),
18-
ignore_existing_images: formData.get('ignore_existing_images') === 'on' ? true : false,
18+
ignore_existing_images: formData.get('ignore_existing_images') === 'on',
1919
});

0 commit comments

Comments
 (0)