Skip to content

Commit 054072f

Browse files
committed
feat(test): migrate document-api tests to bun test
Replace vitest with bun:test for @superdoc/document-api (41 test files, 1034 tests). Changes: - Replace vitest imports with bun:test - Replace vi.fn() with mock() - Add bun test script to package.json - Remove document-api from vitest workspace - Add bun test step to root test script All 1034 tests pass in 830ms (vs ~2.6s+ under vitest).
1 parent 35f150c commit 054072f

44 files changed

Lines changed: 360 additions & 335 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/document-api/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
"default": "./src/types/index.ts"
1717
}
1818
},
19+
"scripts": {
20+
"test": "bun test"
21+
},
1922
"files": [
2023
"src"
2124
]

packages/document-api/src/authorities/authorities.test.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, it, expect, vi } from 'vitest';
1+
import { describe, it, expect, mock } from 'bun:test';
22
import { DocumentApiValidationError } from '../errors.js';
33
import {
44
executeAuthoritiesList,
@@ -17,18 +17,18 @@ import {
1717

1818
function makeAdapter(): AuthoritiesAdapter {
1919
return {
20-
list: vi.fn().mockReturnValue({ items: [], total: 0 }),
21-
get: vi.fn().mockReturnValue({}),
22-
insert: vi.fn().mockReturnValue({ success: true }),
23-
configure: vi.fn().mockReturnValue({ success: true }),
24-
rebuild: vi.fn().mockReturnValue({ success: true }),
25-
remove: vi.fn().mockReturnValue({ success: true }),
20+
list: mock().mockReturnValue({ items: [], total: 0 }),
21+
get: mock().mockReturnValue({}),
22+
insert: mock().mockReturnValue({ success: true }),
23+
configure: mock().mockReturnValue({ success: true }),
24+
rebuild: mock().mockReturnValue({ success: true }),
25+
remove: mock().mockReturnValue({ success: true }),
2626
entries: {
27-
list: vi.fn().mockReturnValue({ items: [], total: 0 }),
28-
get: vi.fn().mockReturnValue({}),
29-
insert: vi.fn().mockReturnValue({ success: true }),
30-
update: vi.fn().mockReturnValue({ success: true }),
31-
remove: vi.fn().mockReturnValue({ success: true }),
27+
list: mock().mockReturnValue({ items: [], total: 0 }),
28+
get: mock().mockReturnValue({}),
29+
insert: mock().mockReturnValue({ success: true }),
30+
update: mock().mockReturnValue({ success: true }),
31+
remove: mock().mockReturnValue({ success: true }),
3232
},
3333
};
3434
}

packages/document-api/src/blocks/blocks.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, expect, it, vi } from 'vitest';
1+
import { describe, expect, it, mock } from 'bun:test';
22
import { executeBlocksDelete, type BlocksAdapter } from './blocks.js';
33
import type { BlocksDeleteInput, BlocksDeleteResult } from '../types/blocks.types.js';
44
import { DocumentApiValidationError } from '../errors.js';
@@ -9,7 +9,7 @@ function makeAdapter(result?: BlocksDeleteResult): BlocksAdapter {
99
deleted: { kind: 'block', nodeType: 'paragraph', nodeId: 'p1' },
1010
};
1111
return {
12-
delete: vi.fn(() => result ?? defaultResult),
12+
delete: mock(() => result ?? defaultResult),
1313
};
1414
}
1515

packages/document-api/src/bookmarks/bookmarks.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, it, expect, vi } from 'vitest';
1+
import { describe, it, expect, mock } from 'bun:test';
22
import { DocumentApiValidationError } from '../errors.js';
33
import {
44
executeBookmarksList,
@@ -11,11 +11,11 @@ import {
1111

1212
function makeAdapter(): BookmarksAdapter {
1313
return {
14-
list: vi.fn().mockReturnValue({ items: [], total: 0 }),
15-
get: vi.fn().mockReturnValue({}),
16-
insert: vi.fn().mockReturnValue({ success: true }),
17-
rename: vi.fn().mockReturnValue({ success: true }),
18-
remove: vi.fn().mockReturnValue({ success: true }),
14+
list: mock().mockReturnValue({ items: [], total: 0 }),
15+
get: mock().mockReturnValue({}),
16+
insert: mock().mockReturnValue({ success: true }),
17+
rename: mock().mockReturnValue({ success: true }),
18+
remove: mock().mockReturnValue({ success: true }),
1919
};
2020
}
2121

packages/document-api/src/captions/captions.test.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, it, expect, vi } from 'vitest';
1+
import { describe, it, expect, mock } from 'bun:test';
22
import { DocumentApiValidationError } from '../errors.js';
33
import {
44
executeCaptionsList,
@@ -12,12 +12,12 @@ import {
1212

1313
function makeAdapter(): CaptionsAdapter {
1414
return {
15-
list: vi.fn().mockReturnValue({ items: [], total: 0 }),
16-
get: vi.fn().mockReturnValue({}),
17-
insert: vi.fn().mockReturnValue({ success: true }),
18-
update: vi.fn().mockReturnValue({ success: true }),
19-
remove: vi.fn().mockReturnValue({ success: true }),
20-
configure: vi.fn().mockReturnValue({ success: true }),
15+
list: mock().mockReturnValue({ items: [], total: 0 }),
16+
get: mock().mockReturnValue({}),
17+
insert: mock().mockReturnValue({ success: true }),
18+
update: mock().mockReturnValue({ success: true }),
19+
remove: mock().mockReturnValue({ success: true }),
20+
configure: mock().mockReturnValue({ success: true }),
2121
};
2222
}
2323

packages/document-api/src/citations/citations.test.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, it, expect, vi } from 'vitest';
1+
import { describe, it, expect, mock } from 'bun:test';
22
import { DocumentApiValidationError } from '../errors.js';
33
import {
44
executeCitationsList,
@@ -21,24 +21,24 @@ import {
2121

2222
function makeAdapter(): CitationsAdapter {
2323
return {
24-
list: vi.fn().mockReturnValue({ items: [], total: 0 }),
25-
get: vi.fn().mockReturnValue({}),
26-
insert: vi.fn().mockReturnValue({ success: true }),
27-
update: vi.fn().mockReturnValue({ success: true }),
28-
remove: vi.fn().mockReturnValue({ success: true }),
24+
list: mock().mockReturnValue({ items: [], total: 0 }),
25+
get: mock().mockReturnValue({}),
26+
insert: mock().mockReturnValue({ success: true }),
27+
update: mock().mockReturnValue({ success: true }),
28+
remove: mock().mockReturnValue({ success: true }),
2929
sources: {
30-
list: vi.fn().mockReturnValue({ items: [], total: 0 }),
31-
get: vi.fn().mockReturnValue({}),
32-
insert: vi.fn().mockReturnValue({ success: true }),
33-
update: vi.fn().mockReturnValue({ success: true }),
34-
remove: vi.fn().mockReturnValue({ success: true }),
30+
list: mock().mockReturnValue({ items: [], total: 0 }),
31+
get: mock().mockReturnValue({}),
32+
insert: mock().mockReturnValue({ success: true }),
33+
update: mock().mockReturnValue({ success: true }),
34+
remove: mock().mockReturnValue({ success: true }),
3535
},
3636
bibliography: {
37-
get: vi.fn().mockReturnValue({}),
38-
insert: vi.fn().mockReturnValue({ success: true }),
39-
rebuild: vi.fn().mockReturnValue({ success: true }),
40-
configure: vi.fn().mockReturnValue({ success: true }),
41-
remove: vi.fn().mockReturnValue({ success: true }),
37+
get: mock().mockReturnValue({}),
38+
insert: mock().mockReturnValue({ success: true }),
39+
rebuild: mock().mockReturnValue({ success: true }),
40+
configure: mock().mockReturnValue({ success: true }),
41+
remove: mock().mockReturnValue({ success: true }),
4242
},
4343
};
4444
}

packages/document-api/src/clear-content/clear-content.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, it, mock } from 'bun:test';
12
import { executeClearContent } from './clear-content.js';
23
import type { ClearContentAdapter } from './clear-content.js';
34
import type { Receipt } from '../types/receipt.js';
@@ -8,7 +9,7 @@ const NOOP_RECEIPT: Receipt = { success: false, failure: { code: 'NO_OP', messag
89
describe('executeClearContent', () => {
910
it('delegates to adapter.clearContent with input and options', () => {
1011
const adapter: ClearContentAdapter = {
11-
clearContent: vi.fn(() => SUCCESS_RECEIPT),
12+
clearContent: mock(() => SUCCESS_RECEIPT),
1213
};
1314

1415
const result = executeClearContent(adapter, {}, { expectedRevision: 'r1' });
@@ -19,7 +20,7 @@ describe('executeClearContent', () => {
1920

2021
it('returns adapter result when NO_OP', () => {
2122
const adapter: ClearContentAdapter = {
22-
clearContent: vi.fn(() => NOOP_RECEIPT),
23+
clearContent: mock(() => NOOP_RECEIPT),
2324
};
2425

2526
const result = executeClearContent(adapter, {});

packages/document-api/src/contract/blocks-delete-contract.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, expect, it } from 'vitest';
1+
import { describe, expect, it } from 'bun:test';
22
import { executeBlocksDelete, type BlocksAdapter } from '../blocks/blocks.js';
33
import type { BlocksDeleteResult } from '../types/blocks.types.js';
44
import { DocumentApiValidationError } from '../errors.js';

packages/document-api/src/contract/contract.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, expect, it } from 'vitest';
1+
import { describe, expect, it } from 'bun:test';
22
import { COMMAND_CATALOG, OPERATION_DESCRIPTION_MAP, OPERATION_EXPECTED_RESULT_MAP } from './command-catalog.js';
33
import { OPERATION_DEFINITIONS, type ReferenceGroupKey } from './operation-definitions.js';
44
import { DOCUMENT_API_MEMBER_PATHS, OPERATION_MEMBER_PATH_MAP, memberPathForOperation } from './operation-map.js';

packages/document-api/src/contract/types.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, it } from 'bun:test';
12
import { assertOperationId, isOperationId, isValidOperationIdFormat, OPERATION_IDS } from './types.js';
23
import type { DocumentApiMemberPath } from './operation-map.js';
34

0 commit comments

Comments
 (0)