@sudobility/testomniac_runner_service 0.1.38 → 0.1.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,15 +1,77 @@
|
|
|
1
1
|
# testomniac_runner_service
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Shared scanning and test-generation engine for Testomniac.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
This package owns the browser-automation abstraction and the logic that turns a
|
|
6
|
+
URL or page state into persisted test coverage.
|
|
7
|
+
|
|
8
|
+
## What It Does
|
|
9
|
+
|
|
10
|
+
The runner service provides:
|
|
11
|
+
|
|
12
|
+
- A `BrowserAdapter` interface used by different runtimes
|
|
13
|
+
- Page discovery and capture
|
|
14
|
+
- DOM/actionable-item extraction
|
|
15
|
+
- Page decomposition into scaffolds and patterns
|
|
16
|
+
- Rule/expertise-based finding generation
|
|
17
|
+
- Test-case and test-action generation
|
|
18
|
+
- Test execution loops
|
|
19
|
+
|
|
20
|
+
It is consumed by the Chrome extension today, and its browser abstraction is
|
|
21
|
+
designed to support server-side runners as well.
|
|
22
|
+
|
|
23
|
+
## Main Entry Points
|
|
24
|
+
|
|
25
|
+
- [src/adapter.ts](/Users/johnhuang/projects/testomniac_runner_service/src/adapter.ts)
|
|
26
|
+
Browser runtime contract
|
|
27
|
+
- [src/index.ts](/Users/johnhuang/projects/testomniac_runner_service/src/index.ts)
|
|
28
|
+
Package exports
|
|
29
|
+
- [src/orchestrator/orchestrator.ts](/Users/johnhuang/projects/testomniac_runner_service/src/orchestrator/orchestrator.ts)
|
|
30
|
+
Legacy discovery-oriented scan loop exported as `runScan`
|
|
31
|
+
- [src/orchestrator/runner.ts](/Users/johnhuang/projects/testomniac_runner_service/src/orchestrator/runner.ts)
|
|
32
|
+
Suite/bundle execution loop exported as `runTestRun`
|
|
33
|
+
- [src/orchestrator/decomposition.ts](/Users/johnhuang/projects/testomniac_runner_service/src/orchestrator/decomposition.ts)
|
|
34
|
+
Generates coverage from captured page states
|
|
35
|
+
- [src/orchestrator/test-execution.ts](/Users/johnhuang/projects/testomniac_runner_service/src/orchestrator/test-execution.ts)
|
|
36
|
+
Executes generated test cases and captures newly reached states
|
|
37
|
+
- [src/orchestrator/test-case-executor.ts](/Users/johnhuang/projects/testomniac_runner_service/src/orchestrator/test-case-executor.ts)
|
|
38
|
+
Executes a single persisted test case in the newer runner
|
|
8
39
|
|
|
9
|
-
|
|
40
|
+
## Coverage Model
|
|
41
|
+
|
|
42
|
+
The package creates coverage in two complementary ways:
|
|
43
|
+
|
|
44
|
+
1. Direct navigation coverage
|
|
45
|
+
Every discovered same-origin path gets a navigation case
|
|
46
|
+
2. Stateful interaction coverage
|
|
47
|
+
Captured page states are decomposed into actionable interactions, forms,
|
|
48
|
+
scaffold-driven flows, and page-content flows
|
|
49
|
+
|
|
50
|
+
As test actions execute, newly reached states are captured and turned into more
|
|
51
|
+
coverage.
|
|
52
|
+
|
|
53
|
+
## Browser Runtime
|
|
54
|
+
|
|
55
|
+
The browser runtime is intentionally abstracted behind `BrowserAdapter`.
|
|
56
|
+
Current adapter implementations include:
|
|
57
|
+
|
|
58
|
+
- The Chrome extension adapter in `testomniac_extension`
|
|
59
|
+
- Potential server/browser adapters for non-extension execution
|
|
60
|
+
|
|
61
|
+
## Local Development
|
|
10
62
|
|
|
11
63
|
```bash
|
|
12
|
-
bun
|
|
64
|
+
bun install
|
|
65
|
+
bun run typecheck
|
|
66
|
+
bun test
|
|
67
|
+
bun run build
|
|
13
68
|
```
|
|
14
69
|
|
|
15
|
-
|
|
70
|
+
## Related Repos
|
|
71
|
+
|
|
72
|
+
- `testomniac_api`
|
|
73
|
+
Persistence and run orchestration API
|
|
74
|
+
- `testomniac_extension`
|
|
75
|
+
Chrome extension that invokes this package
|
|
76
|
+
- `testomniac_types`
|
|
77
|
+
Shared request, response, and domain types
|