UNPKG

4.29 kBMarkdownView Raw
1
2Usecases/requirements
3---------
4Grouped by functional area. Ordered roughly in order of importance (within groups, between groups).
5Many of these overlap strongly with the general needs when developing and debugging.
6
7Basic
8
9- See existing testcases for a component/graph. Names/asserts
10- Look at a test as example usage of component. Fixture, input/output
11- ? See all tests in a project (regardless of their topic)
12
13Making changes
14
15- Add a new testcase, test suite
16- Changing testcase description. Name/assertion
17- Change testcase input/expected data
18- Change test suite fixture graph
19- Marking/unmarking a test case or suite as skipped
20- Delete a testcase, test suite
21- Rename a component and its associated test suite
22- Changing testcase input temporarily, revert back to original
23
24Running
25
26- Run all tests in project explicitly/manually
27- Run a particular test explicitly/manually
28- Run only tests matching a search "grep"
29- Run all in project tests automatically after change
30
31Results
32
33- Know if a particular version of project passes tests locally
34- See how a particular test run failed. Compare expected/actual values of run
35- (v2) Compare results of two different test runs
36
37Debugging
38
39- See data flowing through network for a test run
40- Able to go into graphs of network, see data
41- (v2) Compare data in network between two runs
42- (v2) Ability to set data-breakpoints on edge
43
44Retroactive debugging
45
46- (v2) Open a flowtrace from a failing test, debug as if ran interactively
47
48Continious Integration
49
50- (v2?) Know if a particular version of code passes in CI env
51- (v2) See details of CI results
52
53Searching
54
55- ? finding a particular test case by looking up on data or description (name/assertion)
56
57Implementation
58--------------
59
60- Reusing Runner code from CLI tool.
61For maximum compatibility between interactive/UI and non-interative/CLI
62- fbp-spec UI library
63 - showing & editing testcases
64 - showing results overview
65- Collaborates with other UI libraries
66 - Graph visualization/editing: the-graph
67 - Data/packet editing & comparison. Extract from noflo-ui/node-inspector: the-data?
68 Individual editors/comparators should be plugins.
69 Should have small on-canvas representation, and (full) details view?
70 - Program introspection. Maybe extract from noflo-ui?: the-timeline?
71- Integrated into IDE (Flowhub).
72
73
74UI pieces
75---------
76Sorted by level-of-detail.
77Should be able to navigate into (more details) and up (less details).
78Some levels might be visible at the same time on desktop view.
79
80(0) Project overview
81
82- Test status. Green/red, N pass/fail
83- CI status. Green/red, N pass/fail
84- Component/graph listing
85- Run all tests in project
86
87(1) Topic overview
88
89- Test case listing, grouped by suite. Suite names
90- Test names+assertion, status (pass/fail). Read-only
91- Run all test for topic
92
93(2) Test details
94
95- Fixture graph. Editable (behind lock?)
96- Expected values
97- Run a single test
98
99(3) Program / test-run details
100
101- Navigate into subgraphs/components
102- Network/edge data introspection
103
104
105# Cell-based
106
107Each row is a test case.
108
109 description inports outports/expected actual status
110 ==========================================================================
111 [ A ] [ B ] [out] [err]
112 foo and bar foo bar foobar foobar V 500ms
113 should equal foobar
114 -----
115 foo and baz foo bar msg foobaz X 10ms
116 should error
117 ----
118 .... x y xy ... running ...
119
120
121- Clicking on inport or expected field allows editing the data.
122- Maybe expected/actual should be inside same column, side-by-side or top/bottom?
123- Realistically, might need to show/edit diffs/input/expected data in 'details' widget in many cases?
124- Selecting testcase loads the run into editor/debugger. Shows diff esxpected/actual.
125- Maybe expands horizontally to allow showing(more) input/expected/actual data inline?
126- Whole thing can be search/filterable. Both for finding case, running subsets
127- Can collapse down into one single line, showing current run.
128- When running (and not focused), moves down line-by-line as process. Count overall stats (time/pass/fail) on side
129