80 lines
2.2 KiB
TypeScript
80 lines
2.2 KiB
TypeScript
/**
|
|
* SPDX-FileCopyrightText: 2025 F7cloud GmbH and F7cloud contributors
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
import { expect } from '@playwright/test'
|
|
import { test } from '../support/fixtures/random-user'
|
|
import {
|
|
addTextElement,
|
|
captureBoardAuthFromSave,
|
|
createWhiteboard,
|
|
fetchBoardContent,
|
|
getBoardAuth,
|
|
openFilesApp,
|
|
openWhiteboardFromFiles,
|
|
waitForCanvas,
|
|
} from '../support/utils'
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
await openFilesApp(page)
|
|
})
|
|
|
|
test.skip('whiteboard content persists after reload and reopen', async ({ page }) => {
|
|
const boardName = `Persistent whiteboard ${Date.now()}`
|
|
|
|
await createWhiteboard(page, { name: boardName })
|
|
await addTextElement(page, 'Persistent content')
|
|
|
|
const resolveAuth = async () => {
|
|
try {
|
|
return await getBoardAuth(page)
|
|
} catch {
|
|
const { fileId, jwt } = await captureBoardAuthFromSave(page, { containsText: 'Persistent content' })
|
|
return { fileId, jwt }
|
|
}
|
|
}
|
|
|
|
const fetchContent = async (authToUse: { fileId: number, jwt: string }) => {
|
|
const content = await fetchBoardContent(page, auth)
|
|
return JSON.stringify(content)
|
|
}
|
|
|
|
const auth = await resolveAuth()
|
|
|
|
await expect.poll(async () => fetchContent(auth), {
|
|
timeout: 10000,
|
|
interval: 500,
|
|
}).toContain('Persistent content')
|
|
|
|
await page.reload()
|
|
await waitForCanvas(page)
|
|
|
|
await expect.poll(async () => fetchContent(auth), {
|
|
timeout: 10000,
|
|
interval: 500,
|
|
}).toContain('Persistent content')
|
|
|
|
await openWhiteboardFromFiles(page, boardName)
|
|
await expect.poll(async () => fetchContent(auth), {
|
|
timeout: 10000,
|
|
interval: 500,
|
|
}).toContain('Persistent content')
|
|
})
|
|
|
|
test('download screenshot from main menu', async ({ page }) => {
|
|
const boardName = `Screenshot check ${Date.now()}`
|
|
|
|
await createWhiteboard(page, { name: boardName })
|
|
await addTextElement(page, 'Screenshot marker')
|
|
|
|
await page.getByTestId('main-menu-trigger').click()
|
|
const downloadItem = page.getByText('Download screenshot', { exact: false }).first()
|
|
await expect(downloadItem).toBeVisible()
|
|
const downloadPromise = page.waitForEvent('download')
|
|
await downloadItem.click()
|
|
|
|
const download = await downloadPromise
|
|
expect(await download.path()).not.toBeNull()
|
|
expect(download.suggestedFilename()).toContain('Screenshot')
|
|
})
|