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
| import { beforeEach, describe, expect, it, vi } from 'vitest';
|
| const requestMocks = vi.hoisted(() => ({
| get: vi.fn(),
| post: vi.fn(),
| }));
|
| vi.mock('#/api/request', () => ({
| defHttp: {
| get: requestMocks.get,
| post: requestMocks.post,
| put: vi.fn(),
| },
| }));
|
| // eslint-disable-next-line import/first -- request module must be mocked before loading the API wrapper.
| import {
| getProviderProperties,
| preReleaseFieldVersion,
| promoteFieldToGlobal,
| suggestFieldCode,
| switchCurrentFieldVersion,
| } from './fields';
|
| describe('eln field API paths', () => {
| beforeEach(() => vi.clearAllMocks());
|
| it('uses lowerCamelCase path segments', () => {
| getProviderProperties('LIMS_TASK');
| suggestFieldCode('检验结果');
| preReleaseFieldVersion('version-1');
| switchCurrentFieldVersion('field-1', { reason: 'switch', versionId: 'version-1' });
| promoteFieldToGlobal('field-1', 'promote');
|
| expect(requestMocks.get).toHaveBeenCalledWith({
| data: { source: 'LIMS_TASK' },
| url: '/api/eln/fieldCatalog/providerProperties',
| });
| expect(requestMocks.post.mock.calls.map(([request]) => request.url)).toEqual([
| '/api/eln/fieldCatalog/codeSuggestions',
| '/api/eln/fieldCatalog/versions/version-1/preRelease',
| '/api/eln/fieldCatalog/field-1/currentVersion',
| '/api/eln/fieldCatalog/field-1/promoteGlobal',
| ]);
| });
| });
|
|