31 lines
1.3 KiB
TypeScript
31 lines
1.3 KiB
TypeScript
/** Node-half coverage for the model guidance paired with Web file references. */
|
|
|
|
import { Context } from '@deepseek-ai/cordis'
|
|
import { afterEach, describe, expect, it } from 'vitest'
|
|
import SystemPrompt from '@deepseek-ai/dsh-system-prompt'
|
|
import { apply, inject } from '../src/index.ts'
|
|
|
|
let ctx: Context | undefined
|
|
|
|
afterEach(async () => {
|
|
await ctx?.fiber.dispose()
|
|
ctx = undefined
|
|
})
|
|
|
|
describe('ui-deliverables node plugin', () => {
|
|
it('registers final-response file-reference guidance only while mounted', async () => {
|
|
ctx = new Context()
|
|
await ctx.plugin(SystemPrompt, { persona: '' })
|
|
const mounted = ctx.plugin({ apply, inject })
|
|
await mounted.await()
|
|
|
|
const section = (await ctx.systemPrompt.assemble()).sections
|
|
.find(entry => entry.name === 'ui:deliverable-file-references')
|
|
expect(section?.text).toMatchInlineSnapshot('"When you successfully create or modify files, mention the primary outputs in your final response. To make those and any other changed-file references clickable in Web, format them as Markdown inline code using the exact file-tool path, or a basename when unique among the files changed in that turn."')
|
|
|
|
await mounted.dispose()
|
|
expect((await ctx.systemPrompt.assemble()).sections
|
|
.some(entry => entry.name === 'ui:deliverable-file-references')).toBe(false)
|
|
})
|
|
})
|