Skip to content

docs: fill journeydoc tutorials (content + screenshots)#195

Merged
rubenvdlinde merged 1 commit into
developmentfrom
feature/journeydoc-fill
May 13, 2026
Merged

docs: fill journeydoc tutorials (content + screenshots)#195
rubenvdlinde merged 1 commit into
developmentfrom
feature/journeydoc-fill

Conversation

@rubenvdlinde
Copy link
Copy Markdown
Contributor

Fills in the journeydoc tutorial content for decidesk end-to-end (pilot for the wider rollout).

What's in here

  • All 11 tutorial pages written with real content (8 user, 3 admin) following the ADR-030 shape: concrete ## Goal, ## Prerequisites, numbered ## Steps (each with an inline root-absolute screenshot), ## Verification, ## Common issues table, ## Reference cross-links into docs/features/mcp-tools.md and sibling tutorials.
  • tests/e2e/docs-screenshots.spec.ts filled in with real Playwright flows + a new tests/e2e/global-setup.ts (one-time Nextcloud login → storage state), wired through playwright.config.ts (globalSetup + use.storageState). Added @playwright/test devDep + test:e2e / test:e2e:docs scripts — the journeydoc-init scaffold dropped the playwright.config.ts and the spec but never the dep.
  • data-testid attributes 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-vue and is targeted by role/text — testid-ing that would be a change in the shared lib, out of scope here.)
  • All 52 referenced screenshots committed, captured by npx playwright test --project docs-capture against 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::loadConfiguration calls a stale OpenRegister importFromApp signature (appId:/force: only; the current method needs ($appId, array $data, string $version, bool $force)), so the in-app register-mapping reads 0/24 configured and 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.

- 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.
@rubenvdlinde rubenvdlinde merged commit 43e2156 into development May 13, 2026
18 of 28 checks passed
@rubenvdlinde rubenvdlinde deleted the feature/journeydoc-fill branch May 13, 2026 05:01
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/decidesk @ 341bd52

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.

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.
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant