✨ feat(vscode): 历史会话可换 profile 恢复

This commit is contained in:
cruldra committed 2026-08-25 13:06:48 +08:00
1 parent 1c3e66bdc7
commit 07b2bf75a0
9 files changed
+177 -34

No files matched your search

@@ -0,0 +1,70 @@
import { describe, expect, it } from 'vitest'
import { decideManagedResumeProfile } from './managedResumeProfile'
describe('decideManagedResumeProfile', () => {
it('override 非空时用 override,与 stored 不同则写回', () => {
expect(decideManagedResumeProfile({
storedProfile: '/profiles/grok-4.5.json',
overrideProfile: '/profiles/opus.json',
inferredProfile: '/profiles/from-jsonl.json',
})).toEqual({
effective: '/profiles/opus.json',
persist: '/profiles/opus.json',
})
})
it('override 与 stored trim 后相同则不写回,且忽略 inferred', () => {
expect(decideManagedResumeProfile({
storedProfile: ' /profiles/grok-4.5.json ',
overrideProfile: '/profiles/grok-4.5.json',
inferredProfile: '/profiles/from-jsonl.json',
})).toEqual({
effective: '/profiles/grok-4.5.json',
persist: undefined,
})
})
it('空白 override 视为未提供,回落到 stored', () => {
expect(decideManagedResumeProfile({
storedProfile: '/profiles/grok-4.5.json',
overrideProfile: ' ',
inferredProfile: '/profiles/from-jsonl.json',
})).toEqual({
effective: '/profiles/grok-4.5.json',
persist: undefined,
})
})
it('无 override 时用 stored,不写回也不用 inferred', () => {
expect(decideManagedResumeProfile({
storedProfile: '/profiles/grok-4.5.json',
overrideProfile: undefined,
inferredProfile: '/profiles/from-jsonl.json',
})).toEqual({
effective: '/profiles/grok-4.5.json',
persist: undefined,
})
})
it('override 与 stored 都空时用 inferred 并写回', () => {
expect(decideManagedResumeProfile({
storedProfile: ' ',
overrideProfile: undefined,
inferredProfile: '/profiles/from-jsonl.json',
})).toEqual({
effective: '/profiles/from-jsonl.json',
persist: '/profiles/from-jsonl.json',
})
})
it('三者都空则 effective 与 persist 都为 undefined', () => {
expect(decideManagedResumeProfile({
storedProfile: undefined,
overrideProfile: '',
inferredProfile: null,
})).toEqual({
effective: undefined,
persist: undefined,
})
})
})