Skip to content

Commit bf807ef

Browse files
Phase 4: Consolidate test setup patterns and complete consolidation
Co-authored-by: chrisreddington <[email protected]>
1 parent d0f6d1c commit bf807ef

File tree

6 files changed

+55
-68
lines changed

6 files changed

+55
-68
lines changed

mcp-server/vitest.setup.ts

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,10 @@
11
/**
22
* Vitest setup for mcp-server package tests
33
*
4-
* Sets up test database before all tests and cleans up after
4+
* Uses shared test setup utilities to ensure consistent database setup
55
*/
66

7-
import { setupTestDatabase, teardownTestDatabase } from '@turn-based-mcp/shared'
8-
import { beforeAll, afterAll } from 'vitest'
7+
import { setupStandardTestDatabase } from '@turn-based-mcp/shared'
98

10-
// Setup test database before all tests
11-
beforeAll(async () => {
12-
try {
13-
await setupTestDatabase(true) // Use in-memory database for speed
14-
} catch (error) {
15-
console.error('Failed to setup test database:', error)
16-
throw error
17-
}
18-
})
19-
20-
// Cleanup test database after all tests
21-
afterAll(async () => {
22-
try {
23-
await teardownTestDatabase()
24-
} catch (error) {
25-
console.error('Failed to teardown test database:', error)
26-
// Don't throw here to avoid masking other test failures
27-
}
28-
})
9+
// Setup standard test database using shared utility
10+
setupStandardTestDatabase()

shared/src/testing/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,7 @@ export {
2323
createStorageMocks,
2424
TEST_MOVES
2525
} from './api-test-utils'
26+
27+
export {
28+
setupStandardTestDatabase
29+
} from './vitest-setup'

shared/src/testing/vitest-setup.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* Shared Vitest Setup Functions
3+
*
4+
* Provides standardized test setup and teardown functions to reduce
5+
* duplication across package vitest setup files.
6+
*/
7+
8+
import { beforeAll, afterAll } from 'vitest'
9+
import { setupTestDatabase, teardownTestDatabase } from './test-database'
10+
11+
/**
12+
* Standard database setup for all packages
13+
* Call this in vitest.setup.ts files to ensure consistent database setup
14+
*/
15+
export function setupStandardTestDatabase() {
16+
// Setup test database before all tests
17+
beforeAll(async () => {
18+
try {
19+
await setupTestDatabase(true) // Use in-memory database for speed
20+
} catch (error) {
21+
console.error('Failed to setup test database:', error)
22+
throw error
23+
}
24+
})
25+
26+
// Cleanup test database after all tests
27+
afterAll(async () => {
28+
try {
29+
await teardownTestDatabase()
30+
} catch (error) {
31+
console.error('Failed to teardown test database:', error)
32+
// Don't throw here to avoid masking other test failures
33+
}
34+
})
35+
}

shared/vitest.setup.ts

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,10 @@
11
/**
22
* Vitest setup for shared package tests
33
*
4-
* Sets up test database before all tests and cleans up after
4+
* Uses local test setup utilities since this is the package that defines them
55
*/
66

7-
import { setupTestDatabase, teardownTestDatabase } from './dist/testing/test-database.js'
8-
import { beforeAll, afterAll } from 'vitest'
7+
import { setupStandardTestDatabase } from './src/testing/vitest-setup'
98

10-
// Setup test database before all tests
11-
beforeAll(async () => {
12-
try {
13-
await setupTestDatabase(true) // Use in-memory database for speed
14-
} catch (error) {
15-
console.error('Failed to setup test database:', error)
16-
throw error
17-
}
18-
})
19-
20-
// Cleanup test database after all tests
21-
afterAll(async () => {
22-
try {
23-
await teardownTestDatabase()
24-
} catch (error) {
25-
console.error('Failed to teardown test database:', error)
26-
// Don't throw here to avoid masking other test failures
27-
}
28-
})
9+
// Setup standard test database using local utility
10+
setupStandardTestDatabase()

web/src/test-utils/api-route-mocks.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
*/
77

88
import { vi } from 'vitest'
9+
import { NextRequest } from 'next/server'
910
import {
1011
createSharedGameMocks,
1112
createStorageMocks,
@@ -95,12 +96,12 @@ export function createTestGameSessions() {
9596
/**
9697
* Helper to create NextRequest mock for testing
9798
*/
98-
export function createMockNextRequest(url: string, init?: { method?: string; body?: any }) {
99+
export function createMockNextRequest(url: string, init?: { method?: string; body?: unknown }) {
99100
const mockRequest = {
100101
url,
101102
method: init?.method || 'GET',
102103
json: vi.fn().mockResolvedValue(init?.body || {})
103104
}
104105

105-
return mockRequest as any
106+
return mockRequest as unknown as NextRequest
106107
}

web/vitest.setup.ts

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,12 @@
11
// Vitest setup for web package tests
2-
import { vi, beforeAll, afterAll } from 'vitest'
2+
import { vi } from 'vitest'
33
import '@testing-library/jest-dom'
44

5-
// Set up test database for all tests
6-
import { setupTestDatabase, teardownTestDatabase } from '@turn-based-mcp/shared'
5+
// Use shared test database setup
6+
import { setupStandardTestDatabase } from '@turn-based-mcp/shared'
77

8-
// Setup test database before all tests
9-
beforeAll(async () => {
10-
try {
11-
await setupTestDatabase(true) // Use in-memory database for speed
12-
} catch (error) {
13-
console.error('Failed to setup test database:', error)
14-
throw error
15-
}
16-
})
17-
18-
// Cleanup test database after all tests
19-
afterAll(async () => {
20-
try {
21-
await teardownTestDatabase()
22-
} catch (error) {
23-
console.error('Failed to teardown test database:', error)
24-
// Don't throw here to avoid masking other test failures
25-
}
26-
})
8+
// Setup standard test database using shared utility
9+
setupStandardTestDatabase()
2710

2811
// Mock Next.js Request and Response for API route testing
2912
class MockRequest {

0 commit comments

Comments
 (0)