<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-test-runner-state.el, branch load-graph-classify-start</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-14T06:20:28+00:00</updated>
<entry>
<title>test(test-runner): cover per-project state + small interactive wrappers</title>
<updated>2026-05-14T06:20:28+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-14T06:20:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=c00aaab387e1deb34129fde7670ef28b721ea571'/>
<id>urn:sha1:c00aaab387e1deb34129fde7670ef28b721ea571</id>
<content type='text'>
`test-test-runner.el` covered the `cj/test--do-*` helpers and the focus-add / focus-remove / extract-test-names families. The state machinery and small wrappers were the gap.

22 new tests cover:

- `cj/test--project-root`: nil when projectile is absent, expanded trailing-slash when present.
- `cj/test--state-key`: falls back to `default-directory` without a project root.
- `cj/test--project-state`: creates the entry lazily, reuses on second call.
- `cj/test--state-get` / `cj/test--state-put`: roundtrip + default fallback.
- `cj/test--current-focused-files` / `cj/test--current-mode` getter/setter pairs.
- `cj/test--sync-legacy-state`: mirrors per-project state into the public legacy vars.
- `cj/test--remember-loaded-project-root`: pushes once via `cl-pushnew`, no-op without a root.
- `cj/test--file-in-directory-p`: true for a subpath, false for a sibling.
- `cj/test--get-test-directory`: prefers `tests/` subdir, falls back to the global default.
- `cj/test--get-test-files`: lists `test-*.el` files only, basenames.
- `cj/test--ensure-test-dir-in-load-path`: adds the dir.
- `cj/test-focus-clear` / `cj/test-toggle-mode` / `cj/test-view-focused` / `cj/test-run-all`: behavior + messaging.
</content>
</entry>
</feed>
