-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgeneric_presentation_protocol.feature
More file actions
83 lines (70 loc) · 3.32 KB
/
Copy pathgeneric_presentation_protocol.feature
File metadata and controls
83 lines (70 loc) · 3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# SPDX-FileCopyrightText: 2026 Mattia Egloff <mattia.egloff@pm.me>
# SPDX-License-Identifier: GPL-3.0-or-later
@architecture @presentation @command-event
Feature: Generic presentation command/event protocol
@planned
Scenario: Every shell renders the same prepared presentation
Given Core has prepared a generic presentation command
When each supported shell receives that command
Then each shell renders the supplied content without domain interpretation
@planned
Scenario: User interaction returns as an opaque event
Given a rendered action with an opaque binding identifier
When the user activates that action
Then the shell returns the identifier and raw value unchanged
And Core interprets the event and decides the next commands
@planned
Scenario: Core chooses a capability-compatible presentation
Given a shell reports its generic capabilities
When Core prepares the next presentation
Then Core emits only commands supported by those capabilities
And the shell does not know which domain feature requested them
@planned
Scenario: Invalid boundary input fails safely
Given a malformed or oversized command or event payload
When the boundary decoder receives it
Then the payload is rejected without exposing internal state
@planned
Scenario: Contextual controls expose four stable roles
Given Core has prepared controls for the active surface
When a shell renders the contextual control surface
Then supplied roles define Back, navigation, primary, and secondary actions
@planned
Scenario Outline: Available window drives structural composition
Given the available logical window width is <width>
When Core recomposes the presentation
Then Core emits the <composition> structural composition
Examples:
| width | composition |
| 599 | compact |
| 600 | medium |
| 839 | medium |
| 840 | expanded |
@planned
Scenario: Interaction activates its visible pane first
Given two visible panes have stable opaque surface identifiers
And the secondary pane is inactive
When the user activates an action in the secondary pane
Then Core activates the secondary surface before interpreting the action
@planned
Scenario: Responsive transitions preserve interaction state
Given an expanded two-pane presentation with a selected detail
And a reversible primary action is available
When the available window collapses and expands again
Then the detail remains reachable with its selection and Undo state
@planned
Scenario: Primary action becomes causal Undo
Given the primary action causes a reversible mutation
When Core prepares the next contextual controls
Then Undo occupies the primary role for that mutation
And invoking Undo restores the previous primary role
@planned
Scenario: Overlay kinds remain distinct with reduced motion
Given navigation and secondary-action overlays are available
When the shell uses full or reduced motion
Then the two overlay kinds remain structurally distinguishable
@planned
Scenario: Release contains only the generic action system
Given all supported shells consume the generic command/event protocol
When release validation runs
Then no ScreenModel action channel or shell-selected navigation remains