Skip to content

Commit 88a1b1c

Browse files
committed
docs(plan): Add test coverage gaps section from fixture analysis
why: Third parity pass found importer test fixtures cover only ~40% of real-world patterns. what: - Add Tier 1 crash risks: v1.x teamocil string panes, commands key, rvm - Add Tier 2 missing coverage: YAML aliases, emoji names, pane titles, etc. - List required new fixtures for Phase 1 implementation
1 parent c2f6256 commit 88a1b1c

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

notes/plan.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,35 @@ Not imported but translatable:
230230
- **`clear`** (line 122): Already imported at line 141 but builder ignores it. libtmux has `Pane.clear()` (L4), so builder support is feasible.
231231
- **`cmd_separator`** (line 123): Per-window string (default `"; "`) used to join commands before `send-keys`. Irrelevant for tmuxp since it sends commands individually. Remove TODO.
232232

233+
## Test Coverage Gaps
234+
235+
Current importer test fixtures cover ~40% of real-world config patterns. Key gaps by severity:
236+
237+
### Tier 1: Will Crash or Silently Lose Data
238+
239+
- **v1.x teamocil string panes**: `panes: ["git status"]``TypeError` (importer tries `"cmd" in p` on string)
240+
- **v1.x teamocil `commands` key**: `commands: [...]` → silently dropped (only `cmd` recognized)
241+
- **tmuxinator `rvm`**: Completely ignored by importer (only `rbenv` handled)
242+
- **tmuxinator `pre` scope bug**: Tests pass because fixtures don't verify execution semantics
243+
244+
### Tier 2: Missing Coverage
245+
246+
- **YAML aliases/anchors**: Real tmuxinator configs use `&defaults` / `*defaults` — no test coverage
247+
- **Numeric/emoji window names**: `222:`, `true:`, `🍩:` — YAML type coercion edge cases untested
248+
- **Pane title syntax**: `pane_name: command` dict form — no fixtures
249+
- **`startup_window`/`startup_pane`**: Not tested
250+
- **`pre_tab`** (deprecated): Not tested
251+
- **Window-level `root` with relative paths**: Not tested
252+
- **`tmux_options` with non-`-f` flags**: Not tested (importer bug I2)
253+
254+
### Required New Fixtures
255+
256+
When implementing Phase 1 import fixes, each item needs corresponding test fixtures. See `tests/fixtures/import_tmuxinator/` and `tests/fixtures/import_teamocil/` for existing patterns.
257+
258+
**tmuxinator fixtures needed**: YAML aliases, emoji names, numeric names, `rvm`, `pre_tab`, `startup_window`/`startup_pane`, pane titles, `socket_path`, multi-flag `tmux_options`
259+
260+
**teamocil fixtures needed**: v1.x format (`commands`, string panes, window `focus`/`options`), pane `height`, `with_env_var`, mixed v0.x/v1.x detection
261+
233262
## Implementation Priority
234263

235264
### Phase 1: Import Fixes (No Builder/libtmux Changes)

0 commit comments

Comments
 (0)