Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import * as fs from 'fs'
|
|
import path from 'path'
|
|
import test from '@playwright/test'
|
|
|
|
const __dirname = path.dirname(new URL(import.meta.url).pathname)
|
|
|
|
// get all example slugs by finding README.md files in the nested category folders
|
|
const examplesRoot = path.join(__dirname, '../../src/examples')
|
|
function getExampleSlugs(dir: string): string[] {
|
|
const slugs: string[] = []
|
|
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
if (!entry.isDirectory()) continue
|
|
const subdir = path.join(dir, entry.name)
|
|
if (fs.existsSync(path.join(subdir, 'README.md'))) {
|
|
slugs.push(entry.name)
|
|
} else {
|
|
slugs.push(...getExampleSlugs(subdir))
|
|
}
|
|
}
|
|
return slugs
|
|
}
|
|
const examplesFolderList = getExampleSlugs(examplesRoot)
|
|
const examplesWithoutCanvas = [
|
|
// only shows an image, not the canvas
|
|
'image-component',
|
|
// links out to a different repo
|
|
'yjs',
|
|
// starts by asking the user to select an image
|
|
'image-annotator',
|
|
// starts by asking the user to open a pdf
|
|
'pdf-editor',
|
|
// starts by asking the user to select a pdf (built on pdf-editor)
|
|
'exam-marking',
|
|
]
|
|
const examplesToTest = examplesFolderList.filter((route) => !examplesWithoutCanvas.includes(route))
|
|
|
|
test.describe('Routes', () => {
|
|
for (const example of examplesToTest) {
|
|
test(example, async ({ page }) => {
|
|
await page.goto(`http://localhost:5420/${example}/full`)
|
|
await page.waitForSelector('.tl-canvas')
|
|
})
|
|
}
|
|
})
|