forked from Tritlo/tuispec
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtuispec.cabal
More file actions
114 lines (106 loc) · 2.91 KB
/
tuispec.cabal
File metadata and controls
114 lines (106 loc) · 2.91 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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
cabal-version: 3.8
name: tuispec
version: 0.2.0.0
build-type: Simple
license: MIT
license-file: LICENSE
author: Matthias Pall Gissurarson
maintainer: mpg@mpg.is
copyright: 2026 Matthias Pall Gissurarson
synopsis: Playwright-like black-box testing for terminal UIs over PTY
description:
@tuispec@ is a Haskell framework for black-box testing of terminal user
interfaces (TUIs) over PTY.
.
It provides a Playwright-inspired DSL for launching apps, sending
keystrokes, waiting for text, and capturing snapshots (ANSI text + PNG).
.
Tests are regular compiled Haskell programs using @tasty@ with per-test
isolation via fresh PTY processes. The framework is generic to any TUI
binary runnable from a shell, with no instrumentation required inside the
target app.
.
Features include:
.
* PTY transport with per-test isolation
* Text selectors (@Exact@, @Regex@, @At@, @Within@, @Nth@)
* Keypress and text input actions
* Snapshot assertions with ANSI text + PNG artifacts
* Configurable retry, timeout, and ambiguity modes
* JSON-RPC server for interactive orchestration
* REPL-style session mode for ad-hoc exploration
category: Testing
homepage: https://github.com/Tritlo/tuispec
bug-reports: https://github.com/Tritlo/tuispec/issues
tested-with: ghc ==9.12.2
extra-doc-files:
CHANGELOG.md
README.md
SERVER.md
SKILL.md
SPEC.md
doc/example-board-ioskeley-light.png
doc/example-dashboard-ioskeley-dark.png
source-repository head
type: git
location: https://github.com/Tritlo/tuispec.git
common common-settings
default-language: GHC2021
ghc-options: -Wall
library
import: common-settings
hs-source-dirs: src
exposed-modules:
TuiSpec
TuiSpec.Render
TuiSpec.Replay
TuiSpec.Runner
TuiSpec.Server
TuiSpec.Types
other-modules:
TuiSpec.Internal
TuiSpec.ProjectRoot
build-depends:
aeson >=2.0 && <2.3,
base >=4.16 && <5,
bytestring >=0.11 && <0.13,
containers >=0.6 && <0.8,
directory >=1.3 && <1.4,
filepath >=1.4 && <1.6,
jsonrpc >=0.2 && <0.3,
posix-pty >=0.2 && <0.3,
process >=1.6 && <1.7,
tasty >=1.4 && <1.6,
tasty-hunit >=0.10 && <0.12,
text >=1.2 && <2.2,
time >=1.9 && <1.15,
unix >=2.8 && <2.10,
executable tuispec
import: common-settings
hs-source-dirs: app
main-is: Main.hs
autogen-modules: Paths_tuispec
other-modules: Paths_tuispec
build-depends:
base >=4.16 && <5,
optparse-applicative >=0.18 && <0.20,
text >=1.2 && <2.2,
tuispec,
unix >=2.8 && <2.10,
test-suite tuispec-smoke
import: common-settings
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Spec.hs
build-depends:
aeson >=2.0 && <2.3,
base >=4.16 && <5,
bytestring >=0.11 && <0.13,
directory >=1.3 && <1.4,
filepath >=1.4 && <1.6,
process >=1.6 && <1.7,
scientific >=0.3 && <0.4,
tasty >=1.4 && <1.6,
tasty-hunit >=0.10 && <0.12,
text >=1.2 && <2.2,
tuispec,