diff --git a/packages/sync/src/sync.test.ts b/packages/sync/src/sync.test.ts index 5f5095f7..5f72404b 100644 --- a/packages/sync/src/sync.test.ts +++ b/packages/sync/src/sync.test.ts @@ -76,6 +76,8 @@ describe('Sync Engine', () => { const status = engine.getStatus(); expect(status.status).toBe('idle'); + expect(status.queueLength).toBe(1); + expect(engine.getQueueLength()).toBe(1); }); it('deduplicates items for same entity', async () => { @@ -91,6 +93,8 @@ describe('Sync Engine', () => { await engine.push('tasks', { id: '1', title: 'Task 1' }); await engine.push('tasks', { id: '1', title: 'Task 1 Updated' }); + expect(engine.getQueueLength()).toBe(1); + // Queue should have 1 item (deduplicated) const result = await engine.fullSync(); expect(result.pushed).toBe(1); @@ -131,6 +135,8 @@ describe('Sync Engine', () => { const result = await engine.fullSync(); expect(result.pushed).toBe(1); + expect(engine.getQueueLength()).toBe(0); + expect(engine.getStatus().lastSyncAt).toBeTruthy(); const requests = apiClient.getRequests(); expect(requests).toHaveLength(2); // Pull + Push @@ -148,6 +154,7 @@ describe('Sync Engine', () => { const result = await engine.fullSync(); expect(result.pulled).toBe(0); // Mock returns empty + expect(engine.getStatus().lastSyncAt).toBeTruthy(); }); }); @@ -164,6 +171,8 @@ describe('Sync Engine', () => { const status = engine.getStatus(); expect(status.status).toBe('idle'); + expect(status.queueLength).toBe(0); + expect(status.lastSyncAt).toBeUndefined(); }); it('notifies status changes', async () => { @@ -183,8 +192,7 @@ describe('Sync Engine', () => { await engine.push('tasks', { title: 'Test' }); - // Status changes during push - expect(statuses.length).toBeGreaterThanOrEqual(0); + expect(statuses).toContain('idle'); }); }); @@ -201,7 +209,10 @@ describe('Sync Engine', () => { await engine.push('tasks', { title: 'Task 1' }); await engine.push('tasks', { title: 'Task 2' }); + expect(engine.getQueueLength()).toBe(2); + await engine.clearQueue(); + expect(engine.getQueueLength()).toBe(0); const result = await engine.fullSync(); expect(result.pushed).toBe(0); diff --git a/services/platform-service/package.json b/services/platform-service/package.json index 59cf1cef..a7307c01 100644 --- a/services/platform-service/package.json +++ b/services/platform-service/package.json @@ -8,6 +8,7 @@ "dev": "tsx watch src/server.ts", "build": "tsc", "start": "node dist/server.js", + "pretest": "corepack pnpm --dir ../.. --filter @bytelyst/auth --filter @bytelyst/blob --filter @bytelyst/storage --filter @bytelyst/config --filter @bytelyst/cosmos --filter @bytelyst/datastore --filter @bytelyst/errors --filter @bytelyst/events --filter @bytelyst/fastify-core build", "test": "vitest run", "test:watch": "vitest", "lint": "eslint src/",