|
@@ -80,12 +80,13 @@ describe('apply wiring', () => {
|
|
|
await b.runtime.dispose()
|
|
await b.runtime.dispose()
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
- it('mounts the bash sample and the todo row as keyed entries through the load-order seam', async () => {
|
|
|
|
|
|
|
+ it('mounts the bash sample, the file-mutation rows, and the todo row as keyed entries through the load-order seam', async () => {
|
|
|
const b = await bench()
|
|
const b = await bench()
|
|
|
- // Both registrant plugins' inject: ['slots', 'conversation'] resolved — the
|
|
|
|
|
- // service being present implies the chat entry declared the hole first.
|
|
|
|
|
|
|
+ // Each registrant plugin's inject: ['slots', 'conversation'] resolved — the
|
|
|
|
|
+ // service being present implies the chat entry declared the hole first. The
|
|
|
|
|
+ // file-mutation registrant claims both write and edit for the diff card.
|
|
|
const entries = b.slots.entries('conversation.chat.toolview')
|
|
const entries = b.slots.entries('conversation.chat.toolview')
|
|
|
- expect(entries.map(e => e.options.key)).toEqual(['bash', 'todo_write'])
|
|
|
|
|
|
|
+ expect(entries.map(e => e.options.key)).toEqual(['bash', 'edit', 'write', 'todo_write'])
|
|
|
// Stats stick with the composer (not inside ChatView).
|
|
// Stats stick with the composer (not inside ChatView).
|
|
|
expect(b.slots.entries('conversation.composer.dock').map(e => e.options.id)).toEqual(['stats'])
|
|
expect(b.slots.entries('conversation.composer.dock').map(e => e.options.id)).toEqual(['stats'])
|
|
|
await b.runtime.dispose()
|
|
await b.runtime.dispose()
|