Files
ChatLab/apps/desktop/main/worker/import/tempDb.test.ts
T
digua b12c07dc32 refactor: extract Electron shell to apps/desktop/
Move Electron-specific code (main, preload, shared) and configs
(electron.vite, electron-builder) into apps/desktop/ to prepare
for multi-platform support (Web Browser standalone).

- Create apps/desktop/ with dedicated package.json and tsconfig
- Split Electron deps (electron, electron-updater, better-sqlite3,
  etc.) from shared frontend deps in root package.json
- Declare better-sqlite3 and @node-rs/jieba in packages/node-runtime
- Add stream-json to packages/parser where it belongs
- Update all path aliases (@electron/* → apps/desktop/*) in tsconfig,
  vite configs, and relative imports in preload/main
- Keep slim root tsconfig.node.json as shared base for packages
- Update CI/CD release workflow for new directory layout
- Fix pre-existing type errors (pi-ai Model generic, SQLLabTab
  LLMChatStreamChunk, filter.test.ts empty methods)
2026-05-19 00:31:00 +08:00

26 lines
894 B
TypeScript

import assert from 'node:assert/strict'
import test from 'node:test'
import { generateMessageKey } from './tempDb'
test('空字符串内容在写库归一化前后应生成同一个去重 key', () => {
const timestamp = 1710000000
const senderPlatformId = 'user-1'
const parsedContent = ''
const keyBeforePersist = generateMessageKey(timestamp, senderPlatformId, parsedContent)
const keyAfterPersist = generateMessageKey(timestamp, senderPlatformId, parsedContent || null)
assert.equal(keyAfterPersist, keyBeforePersist)
})
test('同秒同发送者但等长不同内容应生成不同去重 key', () => {
const timestamp = 1710000000
const senderPlatformId = 'user-1'
const firstKey = generateMessageKey(timestamp, senderPlatformId, '你好啊')
const secondKey = generateMessageKey(timestamp, senderPlatformId, '再见呀')
assert.notEqual(firstKey, secondKey)
})