1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
| import { beforeEach, describe, expect, it, vi } from 'vitest';
|
| const requestMocks = vi.hoisted(() => ({
| get: vi.fn(),
| post: vi.fn(),
| put: vi.fn(),
| }));
|
| vi.mock('#/api/request', () => ({
| defHttp: requestMocks,
| }));
|
| // eslint-disable-next-line import/first -- request module must be mocked before loading the API wrapper.
| import {
| createSourceDataItem,
| createSourcePath,
| getSourceDataItems,
| getSourceEnumObjects,
| getSourceEnumOptions,
| getSourcePaths,
| getSourcePreviewSamples,
| previewSourceDataItem,
| publishSourceDataItem,
| saveSourceDataItem,
| } from './sources';
|
| describe('ELN source API paths', () => {
| beforeEach(() => vi.clearAllMocks());
|
| it('uses lowerCamelCase path segments', () => {
| getSourceDataItems();
| getSourcePaths();
| getSourcePreviewSamples();
| getSourceEnumObjects();
| createSourcePath({} as never);
| createSourceDataItem({} as never);
| getSourceEnumOptions({ labelFieldId: 'label', objectId: 'object', valueFieldId: 'value' });
| saveSourceDataItem('item-1', {} as never);
| previewSourceDataItem('item-1', 'sample-1');
| publishSourceDataItem('item-1', { expectedEditVersion: 0, sampleId: 'sample-1' });
|
| expect(requestMocks.get.mock.calls.map(([request]) => request.url)).toEqual([
| '/api/lims/eln/sources/dataItems',
| '/api/lims/eln/sources/sourcePaths',
| '/api/lims/eln/sources/previewSamples',
| '/api/lims/eln/sources/enumObjects',
| ]);
| expect(requestMocks.post.mock.calls.map(([request]) => request.url)).toEqual([
| '/api/lims/eln/sources/sourcePaths',
| '/api/lims/eln/sources/dataItems',
| '/api/lims/eln/sources/enumOptions',
| '/api/lims/eln/sources/dataItems/item-1/preview',
| '/api/lims/eln/sources/dataItems/item-1/publish',
| ]);
| expect(requestMocks.put).toHaveBeenCalledWith({
| data: {},
| url: '/api/lims/eln/sources/dataItems/item-1',
| });
| });
| });
|
|