From 6520a89dc042dd433454f6cc63cb23b0e6df7911 Mon Sep 17 00:00:00 2001 From: Codex-ytr83r Date: Fri, 25 Sep 2026 00:26:42 -0700 Subject: [PATCH] test: establish independent inspection before preferred-view creation --- .../src/app/architecture_authoring/palette.rs | 6 +---- .../src/app/canvas_selection_tests.rs | 17 ++++++------ crates/oa-desktop/src/guide.rs | 1 + harness/projection-navigation-20260925.md | 27 ++++++++++++++++++- 4 files changed, 36 insertions(+), 15 deletions(-) diff --git a/crates/oa-desktop/src/app/architecture_authoring/palette.rs b/crates/oa-desktop/src/app/architecture_authoring/palette.rs index df754ee3..ef21ef1b 100644 --- a/crates/oa-desktop/src/app/architecture_authoring/palette.rs +++ b/crates/oa-desktop/src/app/architecture_authoring/palette.rs @@ -123,11 +123,7 @@ impl canvas::Program for Icon { // rather than a relationship line in allocated-work views. f.stroke(&line(&[(1., 2.), (1., 14.), (15., 14.), (15., 2.)]), stroke); f.stroke( - &Path::rounded_rectangle( - Point::new(5., 9.), - Size::new(6., 3.), - 1.into(), - ), + &Path::rounded_rectangle(Point::new(5., 9.), Size::new(6., 3.), 1.into()), stroke, ); f.stroke(&line(&[(8., 1.), (8., 7.)]), stroke); diff --git a/crates/oa-desktop/src/app/canvas_selection_tests.rs b/crates/oa-desktop/src/app/canvas_selection_tests.rs index 6746f904..bbbf5cbc 100644 --- a/crates/oa-desktop/src/app/canvas_selection_tests.rs +++ b/crates/oa-desktop/src/app/canvas_selection_tests.rs @@ -506,17 +506,16 @@ fn child_creation_navigates_to_a_parent_layer_preferred_view_only_when_needed() ProjectionKind::Overview }; } + project.diagrams.get_mut(&f.diagram).unwrap().projection = ProjectionKind::Capabilities; f.app = App::with_project(project); - f.app.page = Page::Diagram; - f.app.layer = Layer::Sa; - f.app.active_diagram = Some(f.diagram); - f.app.selected = f.diagram; - f.app.refresh_draft(); - let _ = f.app.update(Message::SelectNode(f.placement)); - let _ = f - .app - .update(Message::Projection(ProjectionKind::Capabilities)); + let _ = f.app.update(Message::Select(f.process)); + let _ = f.app.update(Message::Diagram(Choice { + id: f.diagram, + label: "System capabilities".into(), + })); assert_eq!(f.app.selected, f.process); + assert_eq!(f.app.layer, Layer::Sa); + assert_eq!(f.app.active_diagram, Some(f.diagram)); let before = f.app.document.snapshot(); let _ = f .app diff --git a/crates/oa-desktop/src/guide.rs b/crates/oa-desktop/src/guide.rs index 6f478f0f..d049d798 100644 --- a/crates/oa-desktop/src/guide.rs +++ b/crates/oa-desktop/src/guide.rs @@ -322,6 +322,7 @@ fn article(topic: Topic) -> Article { "Show a correspondence between OA and SA", &[ "Choose OA ↔ SA traceability in View content. Changing this setting does not create counterparts or add their placements, so an existing single-layer diagram can initially look unchanged.", + "Switching back to Architecture or another single-layer projection shows only that view's layer. The other layer's placements, routing and saved visibility remain stored; return to OA ↔ SA traceability to show them again, subject to the view's filters. Selecting a displayed card, port or line and opening its Properties keeps the current view and perspective.", "Use Review layer traces to inspect named Operational and System endpoints and the meaning of their link. This opens the model's layer-trace list with no search restriction; traces between relationships are reviewed here rather than drawn between element cards.", "In the chosen architecture view, use Add existing elements. The chooser offers compatible elements from both layers. Select an existing endpoint and click its position in the canvas; repeat for the other end if needed. This adds a placement, not a new semantic element or trace. For port correspondences, place the ports' owners.", "The view shows correspondence lines alongside ordinary relationships. The shown-line count reflects the current projection and visibility settings, not trace coverage. If a line is hidden, use View visibility and inspect Saved view visibility; placing an endpoint does not remove explicit hides or filters.", diff --git a/harness/projection-navigation-20260925.md b/harness/projection-navigation-20260925.md index 81b8cab3..25286e5d 100644 --- a/harness/projection-navigation-20260925.md +++ b/harness/projection-navigation-20260925.md @@ -57,6 +57,31 @@ The desktop attempt at `603a59c` was deliberately interrupted before test execut Published-preview executable SHA256 `2c03bd6cc3f1110c219e4f57ab94874a121590f83779239a93289b7170664399` reproduces edge selection changing SA to OA, and Architecture switching refused with `diagram_layer`. The isolated valid fixture remained byte-for-byte unchanged after the trial. An earlier fixture used reserved alias `capability` and was rejected; it was corrected before either reproduction. Initial native-dialog capture/input failures also remain separate from application acceptance. Independent evidence review confirmed the resulting screenshot states and persisted byte equality; screenshots alone do not capture the complete action sequence or transient state history. -Candidate Windows GUI save/history/reopen, HTTP regression, broader affected suites and actual rendering acceptance remain outstanding. Raw local evidence is not yet a peer-consumable handoff; publish the consolidated evidence before integration. +The frozen full-workspace attempt at `3a7221b80cfa7924921b3b77f2dd35550247f595` +closed with unchanged tracked inputs and Cargo exit101: core/CLI groups passed616 +with1 existing ignore; desktop passed1538, failed1 and retained7 existing ignores. +The sole failure was the new preferred-view test's setup, before child creation: +`Message::Projection` edits and selects the diagram, so the test's expectation +that the parent remained selected was false. An exact isolated rerun and source +review confirmed this. The correction initializes the projection in the fixture, +then uses explicit parent selection and the ordinary diagram picker to establish +independent semantic inspection. Production navigation is unchanged. All other +new canvas tests passed, including Properties, explicit navigation, relationship +Apply/history, child/root semantic layer, and projection/source/history checks. +The command remains a failed workspace run; server tests and doctests were not +reached. Its planned Clippy/build stages were consequently not launched. + +The same source's formatting check found one multiline icon call requiring a +single line. The follow-up applies that formatting correction and adds in-app +help describing preserved cross-layer content and contextual inspection. Those +are the only production-file changes after the full suite; the remaining change +corrects the test setup. Follow-up canvas/server/doctest, formatting, strict +Clippy and native-build results must be recorded separately, with their exact +source pin. Reuse successful unchanged core/desktop evidence within these limits; +do not turn the failed workspace command into a pass. + +Candidate Windows GUI save/history/reopen, HTTP regression, the corrected test +and final checks remain outstanding. Raw local evidence is not yet a +peer-consumable handoff; publish the consolidated evidence before integration. Scope boundary: contextual relationship forms retain the canvas while opening; successful Apply retains the existing explicit post-review navigation. The generic child-creation handler is tested for containment and allocation, but the separate architecture palette/performer workflow still offers creation kinds for the diagram layer. Thus an OA performer displayed in an SA Traceability view has no Add activity menu entry; this inherited limitation is not claimed repaired here.