Files
readest/apps/readest-app/src/__tests__/database/turso-wasm.browser.test.ts
T

41 lines
1.2 KiB
TypeScript

import { describe, beforeEach, afterEach } from 'vitest';
import { WebDatabaseService } from '@/services/database/webDatabaseService';
import { DatabaseService } from '@/types/database';
import { baseTests } from './suites/base-tests';
import { ftsTests } from './suites/fts-tests';
import { vectorTests } from './suites/vector-tests';
import { migrationTests } from './suites/migration-tests';
/**
* Browser-based integration tests for WebDatabaseService using @tursodatabase/database-wasm.
* These run in real headless Chromium via @vitest/browser + Playwright, providing
* Web Workers, SharedArrayBuffer, and OPFS support required by the WASM module.
*/
describe('WebDatabaseService (browser WASM, in-memory SQLite)', () => {
let db: DatabaseService;
beforeEach(async () => {
db = await WebDatabaseService.open(':memory:', { experimental: ['index_method'] });
});
afterEach(async () => {
await db.close();
});
describe('Base Operations', () => {
baseTests(() => db);
});
describe('Full-Text Search', () => {
ftsTests(() => db);
});
describe('Vector Search', () => {
vectorTests(() => db);
});
describe('Migrations', () => {
migrationTests(() => db);
});
});