init: AI培训与智能巡检系统
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
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();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user