11/* eslint-disable jest/no-conditional-expect */
22
3+ import type { Id , MergeableStore } from 'tinybase' ;
34import { WebSocket , WebSocketServer } from 'ws' ;
4- import { readFileSync , readdirSync } from 'fs' ;
55import type { WsServer } from 'tinybase/synchronizers/synchronizer-ws-server' ;
66import type { WsSynchronizer } from 'tinybase/synchronizers/synchronizer-ws-client' ;
77import { createFilePersister } from 'tinybase/persisters/persister-file' ;
@@ -10,6 +10,7 @@ import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
1010import { createWsSynchronizer } from 'tinybase/synchronizers/synchronizer-ws-client' ;
1111import { join } from 'path' ;
1212import { pause } from '../common/other.ts' ;
13+ import { readFileSync } from 'fs' ;
1314import { resetHlc } from '../common/mergeable.ts' ;
1415import tmp from 'tmp' ;
1516
@@ -191,16 +192,17 @@ describe('Persistence', () => {
191192 tmpDir = tmp . dirSync ( ) . name ;
192193 } ) ;
193194
195+ const createPersister = ( serverStore : MergeableStore , pathId : Id ) =>
196+ createFilePersister (
197+ serverStore ,
198+ join ( tmpDir , pathId . replaceAll ( '/' , '-' ) + '.json' ) ,
199+ ) ;
200+
194201 test ( 'single store' , async ( ) => {
195202 const serverStore = createMergeableStore ( 'ss' ) ;
196203 const wsServer = createWsServer (
197204 new WebSocketServer ( { port : 8050 } ) ,
198- ( pathId ) => {
199- return createFilePersister (
200- serverStore ,
201- join ( tmpDir , pathId . replaceAll ( '/' , '-' ) + '.json' ) ,
202- ) ;
203- } ,
205+ ( pathId ) => createPersister ( serverStore , pathId ) ,
204206 ) ;
205207
206208 const store1 = createMergeableStore ( 's1' ) ;
@@ -212,8 +214,7 @@ describe('Persistence', () => {
212214 store1 . setCell ( 'pets' , 'fido' , 'legs' , 4 ) ;
213215
214216 await pause ( ) ;
215-
216- expect ( readdirSync ( tmpDir ) ) . toEqual ( [ '.json' ] ) ;
217+ expect ( serverStore . getTables ( ) ) . toEqual ( { pets : { fido : { legs : 4 } } } ) ;
217218 expect ( JSON . parse ( readFileSync ( join ( tmpDir , '.json' ) , 'utf-8' ) ) ) . toEqual ( [
218219 [
219220 {
0 commit comments