mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-01 22:09:55 +00:00
## Summary
Backport of #8245 to cloud/1.37.
Add team workspace member management and invite system.
- Add members panel with role management (owner/admin/member) and member
removal
- Add invite system with email invites, pending invite display, and
revoke functionality
- Add invite URL loading for accepting invites
- Add subscription panel updates for member management
- Add i18n translations for member and invite features
## Conflict Resolution
- `src/components/dialog/GlobalDialog.vue`: Added missing
`DialogPassThroughOptions` import
- `src/locales/en/main.json`: Kept "nightly" section from main (was
present before PR)
- `src/platform/cloud/subscription/utils/subscriptionCheckoutUtil.ts`:
Deleted (file doesn't exist in cloud/1.37, only contains unrelated
method rename)
(cherry picked from commit 4771565486)
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8301-backport-cloud-1-37-Workspaces-4-members-invites-2f36d73d36508119a388dac9d290efbd)
by [Unito](https://www.unito.io)
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { expect } from '@playwright/test'
|
|
|
|
import { comfyPageFixture as test } from '../../fixtures/ComfyPage'
|
|
|
|
test.describe('Properties panel', () => {
|
|
test('opens and updates title based on selection', async ({ comfyPage }) => {
|
|
await comfyPage.actionbar.propertiesButton.click()
|
|
|
|
const { propertiesPanel } = comfyPage.menu
|
|
|
|
await expect(propertiesPanel.panelTitle).toContainText(
|
|
'No item(s) selected'
|
|
)
|
|
|
|
await comfyPage.selectNodes(['KSampler', 'CLIP Text Encode (Prompt)'])
|
|
|
|
await expect(propertiesPanel.panelTitle).toContainText('3 nodes selected')
|
|
await expect(propertiesPanel.root.getByText('KSampler')).toHaveCount(1)
|
|
await expect(
|
|
propertiesPanel.root.getByText('CLIP Text Encode (Prompt)')
|
|
).toHaveCount(2)
|
|
|
|
await propertiesPanel.searchBox.fill('seed')
|
|
await expect(propertiesPanel.root.getByText('KSampler')).toHaveCount(1)
|
|
await expect(
|
|
propertiesPanel.root.getByText('CLIP Text Encode (Prompt)')
|
|
).toHaveCount(0)
|
|
|
|
await propertiesPanel.searchBox.fill('')
|
|
await expect(propertiesPanel.root.getByText('KSampler')).toHaveCount(1)
|
|
await expect(
|
|
propertiesPanel.root.getByText('CLIP Text Encode (Prompt)')
|
|
).toHaveCount(2)
|
|
})
|
|
})
|