72 lines
2.5 KiB
TypeScript
72 lines
2.5 KiB
TypeScript
import test, { expect } from '@playwright/test'
|
|
import { InputStepType, defaultTextInputOptions } from 'models'
|
|
import path from 'path'
|
|
import { generate } from 'short-uuid'
|
|
import { createTypebots, parseDefaultBlockWithStep } from '../services/database'
|
|
|
|
const typebotId = generate()
|
|
|
|
test.beforeAll(async () => {
|
|
await createTypebots([
|
|
{
|
|
id: typebotId,
|
|
name: 'Shared typebot',
|
|
ownerId: 'freeUser',
|
|
...parseDefaultBlockWithStep({
|
|
type: InputStepType.TEXT,
|
|
options: defaultTextInputOptions,
|
|
}),
|
|
},
|
|
])
|
|
})
|
|
|
|
test.describe('Typebot owner', () => {
|
|
test.use({
|
|
storageState: path.join(__dirname, '../freeUser.json'),
|
|
})
|
|
test('Can invite collaborators', async ({ page }) => {
|
|
await page.goto(`/typebots/${typebotId}/edit`)
|
|
await page.click('button[aria-label="Show collaboration menu"]')
|
|
await expect(page.locator('text=Free user')).toBeHidden()
|
|
await page.fill(
|
|
'input[placeholder="colleague@company.com"]',
|
|
'guest@email.com'
|
|
)
|
|
await page.click('text=Can view')
|
|
await page.click('text=Can edit')
|
|
await page.click('text=Invite')
|
|
await expect(page.locator('text=Pending')).toBeVisible()
|
|
await expect(page.locator('text=Free user')).toBeHidden()
|
|
await page.fill(
|
|
'input[placeholder="colleague@company.com"]',
|
|
'pro-user@email.com'
|
|
)
|
|
await page.click('text=Can edit')
|
|
await page.click('text=Can view')
|
|
await page.click('text=Invite')
|
|
await expect(page.locator('text=Free user')).toBeVisible()
|
|
await expect(page.locator('text=Pro user')).toBeVisible()
|
|
await page.click('text="guest@email.com"')
|
|
await page.click('text="Remove"')
|
|
await expect(page.locator('text="guest@email.com"')).toBeHidden()
|
|
})
|
|
})
|
|
|
|
test.describe('Collaborator', () => {
|
|
test('should display shared typebots', async ({ page }) => {
|
|
await page.goto('/typebots')
|
|
await expect(page.locator('text=Shared')).toBeVisible()
|
|
await page.click('text=Shared')
|
|
await page.waitForNavigation()
|
|
expect(page.url()).toMatch('/typebots/shared')
|
|
await expect(page.locator('text="Shared typebot"')).toBeVisible()
|
|
await page.click('text=Shared typebot')
|
|
await page.click('button[aria-label="Show collaboration menu"]')
|
|
await page.click('text=Pro user')
|
|
await expect(page.locator('text="Remove"')).toBeHidden()
|
|
await expect(page.locator('text=Free user')).toBeVisible()
|
|
await page.click('text=Block #1', { force: true })
|
|
await expect(page.locator('input[value="Block #1"]')).toBeHidden()
|
|
})
|
|
})
|