mirror of
https://github.com/hellodigua/ChatLab.git
synced 2026-10-25 17:54:34 +08:00
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)
26 lines
894 B
TypeScript
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)
|
|
})
|