import { describe, it, expect, beforeEach, afterEach } from 'vitest' import { DatabaseSync } from 'node:sqlite' import { migrate } from '../../src/main/db/migrate' import { ChapterRepository } from '../../src/main/db/repositories/chapter.repo' import { VolumeRepository } from '../../src/main/db/repositories/volume.repo' import type { SqliteDb } from '../../src/main/db/types' describe('ChapterRepository', () => { let db: SqliteDb beforeEach(() => { db = new DatabaseSync(':memory:') migrate(db) }) afterEach(() => { db.close() }) it('creates chapter and updates word count', () => { const volumes = new VolumeRepository(db) const chapters = new ChapterRepository(db) const vol = volumes.create('第一卷', 0) const ch = chapters.create(vol.id, '测试章', 0, '林远深吸一口气') expect(ch.wordCount).toBe(7) const updated = chapters.update(ch.id, { content: '

更长的一段文字内容

' }) expect(updated.wordCount).toBeGreaterThan(ch.wordCount) }) })