From 9fc9e3f13c1f93c02d6acbe8294596ad6807f4fb Mon Sep 17 00:00:00 2001 From: Georg Bauer Date: Fri, 31 Jul 2026 12:07:43 +0200 Subject: [PATCH] Document UI release verification --- AGENTS.md | 14 ++++++++++++++ TESTING.md | 35 ++++++++++++++++++++++++++++++++--- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index fbbda0a..9bd63c1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -27,6 +27,20 @@ cargo test --workspace Do not weaken or skip these gates to make a commit pass. Fix the underlying warning, lint, formatting issue, or test failure. +## UI verification conventions + +`TESTING.md` is the source of truth for iOS visual verification and the release +regression suite. + +- Update `TESTING.md` in the same commit whenever UI appearance, behavior, + navigation, or interaction changes so its scenarios remain current. +- For each ordinary commit, run every `TESTING.md` scenario relevant to the + changed UI in addition to the required pre-commit gates. Report which visual + scenarios were exercised. +- When asked to perform a release test, run the complete `TESTING.md` checklist. + Every scenario must succeed before reporting release sign-off; record failures + and resolve release blockers instead of skipping them. + ## iOS simulator build and deployment This Apple Silicon project builds the simulator app for `arm64`. Do not disable diff --git a/TESTING.md b/TESTING.md index 4534198..e1e35f2 100644 --- a/TESTING.md +++ b/TESTING.md @@ -1,7 +1,11 @@ # Testing Gotcha -Use this checklist for every iOS release. Add checks when a new screen or -interaction ships so the document remains the release regression suite. +This document is the source of truth for iOS visual verification. Every UI +change must update its relevant scenarios in the same commit. For ordinary +commits, run the build gates and every scenario affected by the change. A +release test means completing this entire checklist successfully on the stated +simulators and devices; record failures as open issues and do not sign off until +every scenario passes. ## Test record @@ -141,6 +145,31 @@ xcrun simctl launch booted de.rfc1437.gotcha horizontal scrolling for long lines. - [ ] Long-press diff text and verify normal selection and copying. +## Repository files + +- [ ] Switch a repository between **History** and **Files**. Each mode displays + the expected content and switching back preserves normal navigation. +- [ ] In Files, traverse several nested folders using rows, the navigation-bar + Back button, and the left-edge swipe. Folder contents and titles match the + repository hierarchy. +- [ ] Open representative source files in several languages, including Rust, + Swift, and a scripting or markup language. Keywords, strings, comments, + types, and punctuation use plausible language-specific highlighting. +- [ ] Open a source file containing a line wider than the screen. It does not + word-wrap; horizontal dragging pans smoothly across the complete line + without blank, black, clipped, delayed, or jumping text. Vertical + scrolling, selection, and copying still work. +- [ ] Open Markdown files using the supported extensions (`.md`, `.markdown`, + `.mdown`, and `.mkd`). **Preview** is selected by default and renders + headings, paragraphs, emphasis, links, lists, task lists, blockquotes, + fenced code blocks, tables, and thematic rules as structured content. +- [ ] Switch a Markdown file from **Preview** to **Source**. The literal Markdown + is syntax-highlighted, selectable, does not word-wrap, and scrolls + horizontally for long lines. Switch back and verify the rendered preview + is restored without stale or overlapping content. +- [ ] Open representative image, PDF, audio, and video files. Each uses the + native preview appropriate to its media type and returns cleanly to Files. + ## Pull requests - [ ] The list defaults to the saved Open/Closed filter. @@ -184,4 +213,4 @@ xcrun simctl launch booted de.rfc1437.gotcha - [ ] All build gates passed. - [ ] Fresh-install and upgrade passes completed. - [ ] Every supported iOS version and required device class completed. -- [ ] Failures are linked in the test record; release blockers are resolved. +- [ ] Every scenario passed; any discovered failures were resolved and retested.