import Database from 'better-sqlite3'; import { SearchService } from './search.service'; import { seedDatabase } from '../testing/seed'; /** SearchService 单元测试 — 对应 T-1.4 UT。*/ describe('SearchService', () => { let service: SearchService; let db: Database.Database; beforeAll(() => { db = new Database(':memory:'); seedDatabase(db); service = new SearchService({ db } as any); }); afterAll(() => db.close()); it('空查询返回空结果', () => { expect(service.search('').results).toEqual([]); }); it('按型号命中', () => { const res = service.search('CR400'); expect(res.results.length).toBeGreaterThan(0); expect(res.results[0].model_code).toBe('CR400AF'); }); it('按生产商命中', () => { const res = service.search('株洲'); expect(res.results.some((r) => r.model_code === 'HXD1型')).toBe(true); }); it('精确匹配排在前', () => { const res = service.search('CR400AF'); expect(res.results[0].rank).toBe(0); }); it('特殊字符不崩溃', () => { expect(() => service.search("%_'")).not.toThrow(); }); });