2022-06-12 17:34:33 +02:00
|
|
|
import test, { expect } from '@playwright/test'
|
2022-10-06 08:33:46 +02:00
|
|
|
import { createTypebots } from 'utils/playwright/databaseActions'
|
|
|
|
import { parseDefaultGroupWithBlock } from 'utils/playwright/databaseHelpers'
|
2022-06-12 17:34:33 +02:00
|
|
|
import { defaultFileInputOptions, InputBlockType } from 'models'
|
2022-10-06 08:33:46 +02:00
|
|
|
import { typebotViewer } from 'utils/playwright/testHelpers'
|
2023-02-10 15:06:02 +01:00
|
|
|
import { createId } from '@paralleldrive/cuid2'
|
2022-10-06 08:33:46 +02:00
|
|
|
import { freeWorkspaceId } from 'utils/playwright/databaseSetup'
|
2022-11-15 09:35:48 +01:00
|
|
|
import { getTestAsset } from '@/test/utils/playwright'
|
2022-06-12 17:34:33 +02:00
|
|
|
|
2022-06-13 08:21:48 +02:00
|
|
|
test.describe.configure({ mode: 'parallel' })
|
|
|
|
|
2022-06-12 17:34:33 +02:00
|
|
|
test('options should work', async ({ page }) => {
|
2023-02-10 15:06:02 +01:00
|
|
|
const typebotId = createId()
|
2022-06-12 17:34:33 +02:00
|
|
|
await createTypebots([
|
|
|
|
{
|
|
|
|
id: typebotId,
|
|
|
|
...parseDefaultGroupWithBlock({
|
|
|
|
type: InputBlockType.FILE,
|
|
|
|
options: defaultFileInputOptions,
|
|
|
|
}),
|
|
|
|
},
|
|
|
|
])
|
|
|
|
|
|
|
|
await page.goto(`/typebots/${typebotId}/edit`)
|
|
|
|
|
|
|
|
await page.click('text=Preview')
|
|
|
|
await expect(
|
|
|
|
typebotViewer(page).locator(`text=Click to upload`)
|
|
|
|
).toBeVisible()
|
2022-06-25 09:24:47 +02:00
|
|
|
await expect(typebotViewer(page).locator(`text="Skip"`)).toBeHidden()
|
2022-06-12 17:34:33 +02:00
|
|
|
await typebotViewer(page)
|
|
|
|
.locator(`input[type="file"]`)
|
2022-11-15 09:35:48 +01:00
|
|
|
.setInputFiles([getTestAsset('avatar.jpg')])
|
2022-06-12 17:34:33 +02:00
|
|
|
await expect(typebotViewer(page).locator(`text=File uploaded`)).toBeVisible()
|
|
|
|
await page.click('text="Collect file"')
|
2022-06-25 09:24:47 +02:00
|
|
|
await page.click('text="Required?"')
|
2022-06-12 17:34:33 +02:00
|
|
|
await page.click('text="Allow multiple files?"')
|
|
|
|
await page.fill('div[contenteditable=true]', '<strong>Upload now!!</strong>')
|
|
|
|
await page.fill('[value="Upload"]', 'Go')
|
2023-01-20 08:12:59 +01:00
|
|
|
await page.fill('[value="Clear"]', 'Reset')
|
|
|
|
await page.fill('[value="Skip"]', 'Pass')
|
2022-06-21 16:53:45 +02:00
|
|
|
await page.fill('input[value="10"]', '20')
|
2022-06-12 17:34:33 +02:00
|
|
|
await page.click('text="Restart"')
|
2023-01-20 08:12:59 +01:00
|
|
|
await expect(typebotViewer(page).locator(`text="Pass"`)).toBeVisible()
|
2022-06-12 17:34:33 +02:00
|
|
|
await expect(typebotViewer(page).locator(`text="Upload now!!"`)).toBeVisible()
|
|
|
|
await typebotViewer(page)
|
|
|
|
.locator(`input[type="file"]`)
|
|
|
|
.setInputFiles([
|
2022-11-15 09:35:48 +01:00
|
|
|
getTestAsset('avatar.jpg'),
|
|
|
|
getTestAsset('avatar.jpg'),
|
|
|
|
getTestAsset('avatar.jpg'),
|
2022-06-12 17:34:33 +02:00
|
|
|
])
|
|
|
|
await expect(typebotViewer(page).locator(`text="3"`)).toBeVisible()
|
2023-01-20 08:12:59 +01:00
|
|
|
await typebotViewer(page).locator('text="Go"').click()
|
2022-06-12 17:34:33 +02:00
|
|
|
await expect(
|
|
|
|
typebotViewer(page).locator(`text="3 files uploaded"`)
|
|
|
|
).toBeVisible()
|
|
|
|
})
|
2022-06-13 08:21:48 +02:00
|
|
|
|
|
|
|
test.describe('Free workspace', () => {
|
|
|
|
test("shouldn't be able to publish typebot", async ({ page }) => {
|
2023-02-10 15:06:02 +01:00
|
|
|
const typebotId = createId()
|
2022-06-13 08:21:48 +02:00
|
|
|
await createTypebots([
|
|
|
|
{
|
|
|
|
id: typebotId,
|
|
|
|
...parseDefaultGroupWithBlock({
|
|
|
|
type: InputBlockType.FILE,
|
|
|
|
options: defaultFileInputOptions,
|
|
|
|
}),
|
|
|
|
workspaceId: freeWorkspaceId,
|
|
|
|
},
|
|
|
|
])
|
|
|
|
await page.goto(`/typebots/${typebotId}/edit`)
|
|
|
|
await page.click('text="Collect file"')
|
|
|
|
await page.click('text="Allow multiple files?"')
|
|
|
|
await page.click('text="Publish"')
|
|
|
|
await expect(
|
|
|
|
page.locator(
|
|
|
|
'text="You need to upgrade your plan in order to use file input blocks"'
|
|
|
|
)
|
|
|
|
).toBeVisible()
|
|
|
|
})
|
|
|
|
})
|