| 12345678910111213141516171819202122 |
- import pino from 'pino'
- import { describe, expect, it } from 'vitest'
- import { createApp } from '../src/app'
- describe('Profile 的 Codex 插件', () => {
- it('Codex Profile 保存勾选的插件并产生新版本;Claude Profile 一律清空;ID 格式校验', () => {
- const app = createApp(pino({ level: 'silent' }), { providers: {} })
- const { id: _i, version: _v, updatedAt: _u, builtin: _b, builtinKey: _k, ...base } = app.profiles.getBuiltin()
- const codex = app.profiles.create({ ...base, provider: 'codex', model: 'gpt-test', name: '带插件', isDefault: false })
- expect(codex.codexPluginIds).toEqual([])
- const updated = app.profiles.update(codex.id, { ...base, provider: 'codex', model: 'gpt-test', name: '带插件', isDefault: false, codexPluginIds: ['google-calendar@openai-curated-remote'] })
- expect(updated.codexPluginIds).toEqual(['google-calendar@openai-curated-remote'])
- expect(updated.version).toBe(2)
- expect(app.profiles.versions(codex.id)[0]!.changed).toEqual(['codexPluginIds'])
- const claude = app.profiles.create({ ...base, name: 'Claude 不用插件', isDefault: false, codexPluginIds: ['gmail@openai-curated-remote'] })
- expect(claude.codexPluginIds).toEqual([])
- expect(() => app.profiles.create({ ...base, provider: 'codex', model: 'gpt-test', name: 'x', isDefault: false, codexPluginIds: ['../etc'] })).toThrow(/校验失败/)
- })
- })
|