mirror of
https://github.com/safishamsi/graphify.git
synced 2026-08-27 08:46:43 +00:00
test(install): cover CLAUDE_CONFIG_DIR always-on registration (#2694)
Adds the coverage the fix lacked (the shared home sandbox deletes CLAUDE_CONFIG_DIR, so it must be set explicitly): env set -> registration lands in $CLAUDE_CONFIG_DIR/CLAUDE.md and the default ~/.claude profile is untouched; env unset -> unchanged ~/.claude/CLAUDE.md with the tilde skill ref. Also adds the CHANGELOG entry. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4910dccc4a
commit
65b33b0e62
@@ -4,6 +4,7 @@ Full release notes with details on each version: [GitHub Releases](https://githu
|
||||
|
||||
## 0.9.44 (unreleased)
|
||||
|
||||
- Fix: `graphify install` (Claude always-on) now writes the CLAUDE.md registration into `$CLAUDE_CONFIG_DIR` when that env var relocates the Claude profile, instead of always mutating the default `~/.claude/CLAUDE.md` (part of #2694, thanks @AromalBiju1).
|
||||
- Fix: a JS/TS inline or nested function expression — including a generator function expression (`function*(k){…}`) — no longer fabricates an INFERRED `indirect_call` when one of its parameters/locals shares a name with an unrelated callable; the expression's own bindings now shadow the name (#2752, thanks @imagineers-tyler), completing the shadow family alongside catch/arrow/loop/external-import (#2757).
|
||||
- Fix: a git-tracked file that also matches a `.gitignore` pattern (a committed file later added to `.gitignore`, or a force-added one) is no longer dropped from the corpus, matching git's own behavior of never un-tracking such a file; `.graphifyignore`/`--exclude` stay authoritative and a non-git corpus is unaffected (#2759, thanks @NithishKumar04). The `git ls-files` probe is skipped entirely when no `.gitignore` is in play, so ordinary corpora pay nothing for it.
|
||||
|
||||
|
||||
@@ -40,6 +40,52 @@ def test_install_default_claude(tmp_path):
|
||||
assert (tmp_path / ".claude" / "skills" / "graphify" / "SKILL.md").exists()
|
||||
|
||||
|
||||
def test_install_claude_md_honors_claude_config_dir(tmp_path, monkeypatch):
|
||||
"""#2694: with CLAUDE_CONFIG_DIR set, the always-on registration lands in
|
||||
$CLAUDE_CONFIG_DIR/CLAUDE.md — not the default ~/.claude/CLAUDE.md, which the
|
||||
old code mutated regardless of the relocated profile."""
|
||||
from graphify.__main__ import install
|
||||
|
||||
home = tmp_path / "home"
|
||||
home.mkdir()
|
||||
config = tmp_path / "cfg"
|
||||
config.mkdir()
|
||||
monkeypatch.setenv("CLAUDE_CONFIG_DIR", str(config))
|
||||
old = os.getcwd()
|
||||
try:
|
||||
os.chdir(tmp_path)
|
||||
with patch("graphify.__main__.Path.home", return_value=home):
|
||||
install(platform="claude")
|
||||
finally:
|
||||
os.chdir(old)
|
||||
|
||||
cfg_md = config / "CLAUDE.md"
|
||||
assert cfg_md.exists(), "registration did not land in $CLAUDE_CONFIG_DIR"
|
||||
text = cfg_md.read_text()
|
||||
assert "# graphify" in text
|
||||
assert str(config) in text, "skill reference does not point into the config dir"
|
||||
assert not (home / ".claude" / "CLAUDE.md").exists(), "default profile was mutated"
|
||||
|
||||
|
||||
def test_install_claude_md_defaults_to_home_when_config_dir_unset(tmp_path, monkeypatch):
|
||||
"""Env unset: behavior is unchanged — the block lands in ~/.claude/CLAUDE.md
|
||||
with the tilde skill reference."""
|
||||
from graphify.__main__ import install
|
||||
|
||||
monkeypatch.delenv("CLAUDE_CONFIG_DIR", raising=False)
|
||||
old = os.getcwd()
|
||||
try:
|
||||
os.chdir(tmp_path)
|
||||
with patch("graphify.__main__.Path.home", return_value=tmp_path):
|
||||
install(platform="claude")
|
||||
finally:
|
||||
os.chdir(old)
|
||||
|
||||
md = tmp_path / ".claude" / "CLAUDE.md"
|
||||
assert md.exists()
|
||||
assert "~/.claude/skills/graphify/SKILL.md" in md.read_text()
|
||||
|
||||
|
||||
def test_install_codebuddy(tmp_path):
|
||||
_install(tmp_path, "codebuddy")
|
||||
assert (tmp_path / ".codebuddy" / "skills" / "graphify" / "SKILL.md").exists()
|
||||
|
||||
Reference in New Issue
Block a user