docs: fill journeydoc tutorials (content + screenshots)#195
Merged
Conversation
- Write real content for all 11 tutorial pages (8 user, 3 admin) following the ADR-030 page shape (Goal / Prerequisites / numbered Steps with inline screenshots / Verification / Common issues / Reference). - Fill in tests/e2e/docs-screenshots.spec.ts with real Playwright flows; add tests/e2e/global-setup.ts (one-time NC login → storage state) and wire globalSetup + storageState in playwright.config.ts; add @playwright/test devDep + test:e2e / test:e2e:docs scripts (the journeydoc-init scaffold dropped the config but not the dep). - Add data-testid attributes to decidesk's own Vue components (App root, the nine detail-page sidebar tabs, LiveMeeting, MeetingIntegrations, AdminRoot, FeaturesRoadmap). - Commit all 52 referenced screenshots, captured by `npx playwright test --project docs-capture` against the dev container; the docs site builds clean ([SUCCESS], no broken-image warnings). - gitignore tests/e2e/.auth/. Note: the dev container has no Decidesk seed data and the register import is half-broken (SettingsService::loadConfiguration calls a stale OpenRegister importFromApp signature), so the flow-detail screenshots fall back to the relevant list/empty-state views — see the spec header.
Contributor
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ❌ | ||||
| stylelint | ❌ | ||||
| composer | ❌ | ✅ 100/100 | |||
| npm | ❌ | ❌ | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-13 05:02 UTC
Download the full PDF report from the workflow artifacts.
This was referenced May 13, 2026
Merged
rubenvdlinde
added a commit
to ConductionNL/procest
that referenced
this pull request
May 13, 2026
#437) Fills all 11 tutorial pages (8 user + 3 admin) with real prose — Goal, Prerequisites, numbered Steps with inline screenshot refs, Verification, Common-issues table, and Reference cross-links. Pattern follows the decidesk pilot (ConductionNL/decidesk#195). User track: - 01-first-launch: dashboard tour + navigation walk + Cases empty state - 02-my-work: tabs, completed toggle, Ter parafering panel - 03-view-case: list view, Cards/Table toggle, detail header, sidebar tabs - 04-advance-case: status transition flow + history audit trail - 05-record-decision: advice form + decision dialog + outcome on header - 06-track-deadlines: dashboard widgets, colour coding, drill-through - 07-handle-objection: bezwaar -> BAC -> beslissing op bezwaar - 08-inspection-checklist: LHS matrix, recommendation, override Admin track: - 01-configure-case-types: case-type wizard, statuses, deadlines, docs - 02-automatic-actions: trigger/condition/action rule engine - 03-admin-settings: Administration -> Procest settings page walk-through Capture spec (tests/e2e/docs-screenshots.spec.ts): - All 11 tests pass against a fresh dev environment (3.5 min runtime). - Uses shoot() / dismissOverlays() / go() helpers from hydra/templates/ journeydoc/, with go() normalising trailing slashes (procest's SPA shell 404s on '/apps/procest/' but works on '/apps/procest'). - Flow screenshots that need seed data (case detail, transition dialog, decision dialog, LHS matrix) fall back to empty-state list views; TODO comments mark which steps need real objects. - Admin settings page lives at /index.php/settings/admin/procest (NC core settings, not the in-app /settings route). Global-setup (tests/e2e/global-setup.ts): - Upgraded to the canonical template's safety checks: bundle-built guard (auto-runs npm run build on CI when js/ is empty), reachability check on /status.php, login-failure detection, login via #header selector instead of URL-based wait. package.json: adds @playwright/test ^1.49.0 + test:e2e / test:e2e:docs / test:e2e:install scripts. Docs build verified: 'npm run build' completes with [SUCCESS]; only the pre-existing /privacy/ /terms/ /iso/ footer-link warnings remain, no broken-markdown-image warnings. Effort: ~2.5 hours, matches the 1.5-3 hr decidesk pilot band.
This was referenced May 13, 2026
Merged
rubenvdlinde
added a commit
to ConductionNL/nextcloud-vue
that referenced
this pull request
May 13, 2026
…225) Adds stable data-testid selectors to the high-traffic Cn* shell components so the journeydoc capture spec (ADR-030) on every Tier-4 Conduction app can target them without per-app instrumentation. The decidesk journeydoc pilot (ConductionNL/decidesk#195) found that most app chrome is rendered by @conduction/nextcloud-vue components, so doing this once in the lib helps every app at once. Purely additive — zero behaviour or styling impact, per the journeydoc-instrument convention. Testids follow the "cn-<scope>-<element>" naming convention from the journeydoc-instrument SKILL.md guide. Components instrumented (by surface): - Shell: CnAppRoot, CnAppNav, CnAppLoading, CnDependencyMissing - Pages: CnPageRenderer, CnPageHeader, CnIndexPage, CnDetailPage, CnDashboardPage, CnSettingsPage, CnSettingsSection, CnFormPage, CnLogsPage, CnFilesPage, CnMapPage, CnWikiPage, CnChatPage - Lists: CnDataTable (table + rows + empty) - Sidebar: CnObjectSidebar (root + each built-in tab + registry tabs + consumer tabs) - Modals: CnFormDialog, CnDeleteDialog, CnCopyDialog, CnAdvancedFormDialog, CnTabbedFormDialog, CnMassDelete/Copy/Export/Import, CnSuggestFeatureModal, CnAiHistoryDialog - Actions: CnActionsBar (+ primary CTA + overflow menu), CnContextMenu, CnRowActions (per-item testid slugged from label), CnUserActionMenu - Filter: CnFilterBar, CnPagination - AI: CnAiCompanion, CnAiChatPanel, CnAiFloatingButton, CnAiInput, CnAiMessageList - Banners: CnLockedBanner
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fills in the journeydoc tutorial content for decidesk end-to-end (pilot for the wider rollout).
What's in here
## Goal,## Prerequisites, numbered## Steps(each with an inline root-absolute screenshot),## Verification,## Common issuestable,## Referencecross-links intodocs/features/mcp-tools.mdand sibling tutorials.tests/e2e/docs-screenshots.spec.tsfilled in with real Playwright flows + a newtests/e2e/global-setup.ts(one-time Nextcloud login → storage state), wired throughplaywright.config.ts(globalSetup+use.storageState). Added@playwright/testdevDep +test:e2e/test:e2e:docsscripts — thejourneydoc-initscaffold dropped theplaywright.config.tsand the spec but never the dep.data-testidattributes added to decidesk's own Vue components: the app root, the nine detail-page sidebar tabs,LiveMeeting,MeetingIntegrations,AdminRoot,FeaturesRoadmap. (Most capture-relevant chrome on the dashboard/list/settings pages is rendered by@conduction/nextcloud-vueand is targeted by role/text — testid-ing that would be a change in the shared lib, out of scope here.)npx playwright test --project docs-captureagainst the dev container (11 passed).cd docs && npm ci --legacy-peer-deps && npm run build→[SUCCESS], no broken-image warnings.Honest caveat (this is a pilot)
The dev container has no Decidesk seed data, and the Decidesk register import is half-broken there —
SettingsService::loadConfigurationcalls a stale OpenRegisterimportFromAppsignature (appId:/force:only; the current method needs($appId, array $data, string $version, bool $force)), so the in-app register-mapping reads0/24 configuredand the Add Item dialogs render with no form fields. Net effect: the structural screenshots (dashboard, navigation, list/empty-state views, the create dialog, the three-section Settings page) are real and clean, but the flow-detail screenshots (a populated agenda, a closed voting round, signed minutes, a decision with action items) fall back to the relevant list/empty-state view until seed data + the import fix land. The spec header documents this; the markdown shape is final and the captures re-run as soon as data exists.Docs-only / pre-production app → auto-merge OK.