workspaceApprovalCard.test.ts 1.1 KB

1234567891011121314151617181920
  1. import { mount } from '@vue/test-utils'
  2. import { expect, it } from 'vitest'
  3. import WorkspaceApprovalCard from '@/components/workspace/WorkspaceApprovalCard.vue'
  4. it('sends one-time choices and directs persistent policy to global settings', async () => {
  5. const view = mount(WorkspaceApprovalCard, { props: { prompt: '调用图片生成工具', agentName: '瑶儿' } })
  6. expect(view.text()).toContain('瑶儿: 调用图片生成工具')
  7. expect(view.text()).toContain('所有 Bot 的审批策略')
  8. const buttons = view.findAll('button')
  9. expect(buttons.map(button => button.text())).toEqual(['允许', '拒绝'])
  10. for (const button of buttons) await button.trigger('click')
  11. expect(view.emitted('choose')).toEqual([['once'], ['deny']])
  12. await view.setProps({ busy: true, error: '本次答复未确认' })
  13. expect(view.get('[role="status"]').text()).toBe('正在处理…')
  14. expect(view.get('[role="alert"]').text()).toBe('本次答复未确认')
  15. expect(buttons.every(button => button.attributes('disabled') !== undefined)).toBe(true)
  16. await buttons[0]!.trigger('click')
  17. expect(view.emitted('choose')).toHaveLength(2)
  18. view.unmount()
  19. })