import { mount } from '@vue/test-utils' import { expect, it } from 'vitest' import WorkspaceApprovalCard from '@/components/workspace/WorkspaceApprovalCard.vue' it('sends distinct one-time and persistent choices and labels their Bot scope', async () => { const view = mount(WorkspaceApprovalCard, { props: { prompt: '调用图片生成工具', agentName: '瑶儿' } }) expect(view.text()).toContain('瑶儿: 调用图片生成工具') expect(view.text()).toContain('同步此 Bot 的权限设置') const buttons = view.findAll('button') expect(buttons.map(button => button.text())).toEqual(['允许', '拒绝', '自动允许']) for (const button of buttons) await button.trigger('click') expect(view.emitted('choose')).toEqual([['once'], ['deny'], ['auto']]) await view.setProps({ busy: true, error: '本次答复未确认' }) expect(view.get('[role="status"]').text()).toBe('正在处理…') expect(view.get('[role="alert"]').text()).toBe('本次答复未确认') expect(buttons.every(button => button.attributes('disabled') !== undefined)).toBe(true) await buttons[2]!.trigger('click') expect(view.emitted('choose')).toHaveLength(3) view.unmount() })