Commit 033609e
authored
🪲 [Fix]: Type-accelerator tests handle modules without enums or classes (#120)
Module test runs now handle modules that export only one kind of public
type under Pester 6. Type-accelerator checks skip empty enum or class
collections instead of failing discovery, so `Test-PSModule` can
validate modules that have classes without enums, enums without classes,
or both.
## Fixed: Type-accelerator tests handle missing enum or class exports
Modules no longer fail the `Test-PSModule` module test suite just
because one type category is empty. If a module has public classes but
no public enums, the enum registration check is skipped and the class
registration checks still run. If a module has public enums but no
public classes, the class registration check is skipped and the enum
registration checks still run.
This resolves the Pester 6 discovery failure caused by empty `-ForEach`
collections while preserving coverage for the exported types that do
exist.
## Technical Details
- `src/tests/Module/PSModule/PSModule.Tests.ps1` now passes
`-AllowNullOrEmptyForEach` to both type-accelerator `It` blocks.
- `.github/workflows/Action-Test-outputs.yml` now runs the output
fixture workflow against both the existing class-only fixture and a new
enum-only fixture.
- `tests/outputEnumOnlyTestRepo/outputs/module/PSModuleEnumOnly` adds a
minimal enum-only module fixture for the missing coverage path.
- The enum-only fixture cleanup only removes accelerators that still
point to the type exported by that fixture, avoiding removal of
pre-existing accelerators with the same name.1 parent bf40a25 commit 033609e
5 files changed
Lines changed: 98 additions & 6 deletions
File tree
- .github/workflows
- src/tests/Module/PSModule
- tests/outputEnumOnlyTestRepo
- outputs/module/PSModuleEnumOnly
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
24 | 31 | | |
25 | 32 | | |
26 | 33 | | |
| |||
32 | 39 | | |
33 | 40 | | |
34 | 41 | | |
35 | | - | |
36 | | - | |
| 42 | + | |
| 43 | + | |
37 | 44 | | |
38 | | - | |
| 45 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
96 | | - | |
| 96 | + | |
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
101 | | - | |
| 101 | + | |
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
| |||
Lines changed: 36 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
Lines changed: 48 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
0 commit comments