From bb35f07cc95a73aacbaf1f7f46bb8a3f40f265b5 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 19 Dec 2025 12:39:53 -0600 Subject: [PATCH] tests/claude-code: add rules tests Signed-off-by: Austin Horstman --- .../modules/programs/claude-code/default.nix | 2 ++ .../programs/claude-code/rules-dir.nix | 14 +++++++++++++ .../programs/claude-code/rules-path.nix | 20 +++++++++++++++++++ .../programs/claude-code/rules/test-rule.md | 9 +++++++++ .../modules/programs/claude-code/test-rule.md | 9 +++++++++ 5 files changed, 54 insertions(+) create mode 100644 tests/modules/programs/claude-code/rules-dir.nix create mode 100644 tests/modules/programs/claude-code/rules-path.nix create mode 100644 tests/modules/programs/claude-code/rules/test-rule.md create mode 100644 tests/modules/programs/claude-code/test-rule.md diff --git a/tests/modules/programs/claude-code/default.nix b/tests/modules/programs/claude-code/default.nix index 7ff4a9977..315a1975c 100644 --- a/tests/modules/programs/claude-code/default.nix +++ b/tests/modules/programs/claude-code/default.nix @@ -5,6 +5,8 @@ claude-code-assertion = ./assertion.nix; claude-code-memory-management = ./memory-management.nix; claude-code-memory-from-source = ./memory-from-source.nix; + claude-code-rules-dir = ./rules-dir.nix; + claude-code-rules-path = ./rules-path.nix; claude-code-agents-dir = ./agents-dir.nix; claude-code-commands-dir = ./commands-dir.nix; claude-code-hooks-dir = ./hooks-dir.nix; diff --git a/tests/modules/programs/claude-code/rules-dir.nix b/tests/modules/programs/claude-code/rules-dir.nix new file mode 100644 index 000000000..0716b85bd --- /dev/null +++ b/tests/modules/programs/claude-code/rules-dir.nix @@ -0,0 +1,14 @@ +{ + programs.claude-code = { + enable = true; + rulesDir = ./rules; + }; + + nmt.script = '' + assertFileExists home-files/.claude/rules/test-rule.md + assertLinkExists home-files/.claude/rules/test-rule.md + assertFileContent \ + home-files/.claude/rules/test-rule.md \ + ${./rules/test-rule.md} + ''; +} diff --git a/tests/modules/programs/claude-code/rules-path.nix b/tests/modules/programs/claude-code/rules-path.nix new file mode 100644 index 000000000..474280bd5 --- /dev/null +++ b/tests/modules/programs/claude-code/rules-path.nix @@ -0,0 +1,20 @@ +{ + programs.claude-code = { + enable = true; + rules = { + test-rule = ./test-rule.md; + inline-rule = '' + # Inline Rule + + This is an inline rule for testing. + ''; + }; + }; + + nmt.script = '' + assertFileExists home-files/.claude/rules/test-rule.md + assertFileContent home-files/.claude/rules/test-rule.md \ + ${./test-rule.md} + assertFileExists home-files/.claude/rules/inline-rule.md + ''; +} diff --git a/tests/modules/programs/claude-code/rules/test-rule.md b/tests/modules/programs/claude-code/rules/test-rule.md new file mode 100644 index 000000000..fc873169d --- /dev/null +++ b/tests/modules/programs/claude-code/rules/test-rule.md @@ -0,0 +1,9 @@ +# Test Rule from Directory + +This is a test rule loaded from a directory. +Used to verify rulesDir support functionality. + +## Best Practices + +- Write clean code +- Test thoroughly diff --git a/tests/modules/programs/claude-code/test-rule.md b/tests/modules/programs/claude-code/test-rule.md new file mode 100644 index 000000000..273fad528 --- /dev/null +++ b/tests/modules/programs/claude-code/test-rule.md @@ -0,0 +1,9 @@ +# Test Rule + +This is a test rule loaded from a file path. +Used to verify path support functionality for rules. + +## Guidelines + +- Follow test conventions +- Maintain code quality