@@ -19,28 +19,36 @@ vi.mock('../utils/http-client.js', () => ({
1919} ) )
2020
2121// Mock only the game classes from shared library
22+ // In vitest v4, mocks used as constructors must use 'function' syntax
2223vi . mock ( '@turn-based-mcp/shared' , async ( importOriginal ) => {
2324 const actual = await importOriginal ( ) as any
2425 return {
2526 ...actual ,
26- TicTacToeGame : vi . fn ( ( ) => ( {
27- getValidMoves : vi . fn ( ( ) => [ { row : 0 , col : 0 } ] )
28- } ) ) ,
29- RockPaperScissorsGame : vi . fn ( ( ) => ( { } ) )
27+ TicTacToeGame : vi . fn ( function ( ) {
28+ return {
29+ getValidMoves : vi . fn ( ( ) => [ { row : 0 , col : 0 } ] )
30+ }
31+ } ) ,
32+ RockPaperScissorsGame : vi . fn ( function ( ) { return { } } )
3033 }
3134} )
3235
3336// Mock AI modules
37+ // In vitest v4, mocks used as constructors must use 'function' syntax
3438vi . mock ( '../ai/tic-tac-toe-ai.js' , ( ) => ( {
35- TicTacToeAI : vi . fn ( ( ) => ( {
36- makeMove : vi . fn ( ( ) => ( { row : 0 , col : 0 } ) )
37- } ) )
39+ TicTacToeAI : vi . fn ( function ( ) {
40+ return {
41+ makeMove : vi . fn ( ( ) => ( { row : 0 , col : 0 } ) )
42+ }
43+ } )
3844} ) )
3945
4046vi . mock ( '../ai/rock-paper-scissors-ai.js' , ( ) => ( {
41- RockPaperScissorsAI : vi . fn ( ( ) => ( {
42- makeChoice : vi . fn ( ( ) => 'rock' )
43- } ) )
47+ RockPaperScissorsAI : vi . fn ( function ( ) {
48+ return {
49+ makeChoice : vi . fn ( ( ) => 'rock' )
50+ }
51+ } )
4452} ) )
4553
4654describe ( 'MCP Server Integration' , ( ) => {
0 commit comments