docs(e2e): add documentation screenshot capture tool#13894
Conversation
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
Adds tests/e2e/docs, a Playwright tool that captures end-user documentation screenshots from a live ownCloud Web instance so the screenshots used in the user documentation never drift from the product. Each "tour" (data in tours.ts) drives the UI through a documented flow and saves a captioned screenshot per step plus a manifest.json. The initial tours mirror the "Web for users" documentation: top navigation, the file sidebars, sharing roles and contextual help. It reuses the repository's Playwright install (run with `pnpm docs:screenshots`) and seeds best-effort demo data so the tours have something to show. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: David Walter <david.walter@kiteworks.com>
4cd6b3e to
5a86e62
Compare
|
Fixes the build (prettier --check) and the SonarCloud duplication gate on the documentation screenshot capture tool: - format capture.spec.ts and the support files with prettier - extract the repeated UI sequences (open Personal + select report.md + open the right sidebar, open the Shares panel, navigate a left-sidebar section) into shared helpers in support/oc.ts, so the filesidebar/contextualhelp/ storagetour steps no longer duplicate those blocks No behavioral change to the captured tours. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: David Walter <david.walter@kiteworks.com>
| const USER = process.env.OCIS_USER ?? 'admin' | ||
| const PASS = process.env.OCIS_PASSWORD ?? 'admin' |
There was a problem hiding this comment.
The admin username and password are already defined in tests/e2e/config.js file.
|
|
||
| const __dirname = path.dirname(fileURLToPath(import.meta.url)) | ||
| const outputRoot = path.join(__dirname, 'output') | ||
| const baseURL = process.env.OCIS_URL ?? 'https://localhost:9200' |
There was a problem hiding this comment.
| const baseURL = process.env.OCIS_URL ?? 'https://localhost:9200' | |
| const baseURL = config.baseUrlOcis |
| reporter: 'list', | ||
| timeout: 120_000, | ||
| use: { | ||
| baseURL: process.env.OCIS_URL ?? 'https://localhost:9200', |
There was a problem hiding this comment.
| baseURL: process.env.OCIS_URL ?? 'https://localhost:9200', | |
| baseURL: config.baseUrlOcis |
|
|
||
| ```bash | ||
| # from the repository root | ||
| OCIS_URL=https://localhost:9200 OCIS_USER=admin OCIS_PASSWORD=admin pnpm docs:screenshots |
There was a problem hiding this comment.
| OCIS_URL=https://localhost:9200 OCIS_USER=admin OCIS_PASSWORD=admin pnpm docs:screenshots | |
| BASE_URL_OCIS=https://localhost:9200 pnpm docs:screenshots |
OCIS_USER and OCIS_PASSWORD should not be necessary if we use ADMIN_USERNAME and ADMIN_PASSWORD from the config.js file.
Source the instance URL and admin credentials from tests/e2e/config.js (config.baseUrl / config.adminUsername / config.adminPassword) instead of redefining OCIS_URL / OCIS_USER / OCIS_PASSWORD, so the documentation screenshot capture tool shares the same configuration as the rest of the e2e suite. Addresses review feedback on #13894. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: David Walter <david.walter@kiteworks.com>
|
Thanks @PrajwolAmatya — addressed in 23db7bb. The docs capture tool now sources everything from the shared
One small deviation from the inline suggestion: I used |
|





Description
Adds a small Playwright tool under
tests/e2e/docsthat automatically captures end-user documentation screenshots from a live ownCloud Web instance, so the screenshots used in the user documentation never drift from the product.Each "tour" in
tours.tsis a documented flow: an ordered list of steps with a title, a caption and arunaction that drives the UI. Running the tool logs in, performs each step, saves a screenshot per step underoutput/<tour-id>/NN-<shot>.png, and writes anoutput/manifest.jsonthat pairs every screenshot with its caption.The initial tours mirror the Web for users documentation (whose screenshots are currently outdated):
?help icons and the guidance popovers they openHow to run
It reuses the repository's Playwright install — no new dependencies:
It first seeds best-effort, idempotent demo data (a versioned file, a trashed item, a project space and one incoming share) so the tours have something to show. Generated screenshots and the manifest land in
tests/e2e/docs/output/(git-ignored — they are build artefacts, regenerated on demand). Adding a new tour is just another entry intours.ts.Notes
tests/e2e/docs/directory, one rootpackage.jsonscript (docs:screenshots), and a changelog item. No existing code or the existing e2e suite is touched.Testing
eslintis clean on the new files; the code is ESM and matches the repo ("type": "module").