Problem Statement
During test execution (Invoke-Pester), some tests currently generate or modify files inside the repository working tree (e.g. documentation or reference artifacts).
This leads to several issues:
- git status becomes dirty after running tests
- developers are prompted to commit changes they did not intend to make
- CI and local test behavior diverges
- unit tests have side effects outside their execution scope
--> Tests must be side-effect free with regard to the repository state.
Proposed Solution
- Ensure that running tests never modifies committed files
- Clearly distinguish between:
- fixtures (static, committed test data)
- generated artifacts (temporary test output)
- Improve test isolation and developer experience
- Keep CI and local test runs fully deterministic
Scope / Planned Changes
- Test Output Redirection
- All generator or writer logic invoked from tests must write to $TestDrive
- No test may write to:
- docs/
- references/
- repo root
- any committed path
- Fixtures vs. Generated Files
- Static test inputs and expected outputs must be moved to:
tests/fixtures/
- Tests read fixtures via Get-Content, Import-*, etc.
- Fixtures are committed and reviewed like normal source files
- Generator Tests (“Golden Master” Pattern)
- Documentation / reference generators:
- generate output into $TestDrive
- compare generated output against committed reference files
- Tests must not regenerate committed documentation in-place
- Optional Safety Net (if applicable)
- Generator code may support a configurable output location via:
-OutputPathparameter and/or
- environment variable override (e.g. IDLE_OUTPUT_DIR)
- Tests must always set this to $TestDrive
- Cleanup
- Ensure no temporary artifacts remain after test execution
- Invoke-Pester must leave git status clean
Out of Scope
- No functional changes to IdLE engine logic
- No changes to step behavior or provider contracts
- No documentation regeneration as part of this issue
Acceptance Criteria / Definition of Done
- Running Invoke-Pester does not modify the working tree
- git status is clean after a test run
- All generated files during tests are written to $TestDrive
- Fixtures are clearly separated under tests/fixtures
- CI (Windows + Linux) passes without repo modifications
- No test relies on implicit filesystem side effects
Notes
This issue focuses on test hygiene and developer experience only and must be implemented as a standalone PR, separate from functional or feature-related changes.
Problem Statement
During test execution (Invoke-Pester), some tests currently generate or modify files inside the repository working tree (e.g. documentation or reference artifacts).
This leads to several issues:
--> Tests must be side-effect free with regard to the repository state.
Proposed Solution
Scope / Planned Changes
tests/fixtures/-OutputPathparameter and/orOut of Scope
Acceptance Criteria / Definition of Done
Notes
This issue focuses on test hygiene and developer experience only and must be implemented as a standalone PR, separate from functional or feature-related changes.