Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
8018926
New version: bodaay.hfdownloader version 3.0.4 (#358403)
spectopo Apr 11, 2026
70b6148
Add Pester Tests for `YamlCreate.InstallerDetection` (#327538)
Trenly Apr 11, 2026
51f8ebf
[New Version] REVENGE.StremioEnhanced version 1.1.3 (#358400)
YusufKhalifadev Apr 11, 2026
88f8c80
Added 2 tags: YouXiao.YXFile version 2.5.4.4 (#358414)
DandelionSprout Apr 11, 2026
19ba35f
New version: Discloud.CLI version 0.12.1 (#358407)
Gorniaky Apr 11, 2026
158c2ab
New version: GAM-Team.gam version 7.40.01 (#358408)
kris6673 Apr 11, 2026
3a13920
New version: Google.Chrome.Canary version 149.0.7786.0 (#358410)
spectopo Apr 11, 2026
0163125
Added 2 tags: Yeastar.Linkus.Desktop version 1.21.2 (#358415)
DandelionSprout Apr 11, 2026
ecc1e69
Added 2 tags: Shilihu.Mubu version 5.5.0 (#358419)
DandelionSprout Apr 11, 2026
9475c2f
Added 2 tags: ZhongshiHuiyun.Boom version 3.7.8 (#358423)
DandelionSprout Apr 11, 2026
3df2e51
Added 2 tags: Huya.Huya version 7.5.0.0 (#358424)
DandelionSprout Apr 11, 2026
f7ad396
Added 2 tags: H3C.H3CShare version 1.1.1012 (#358426)
DandelionSprout Apr 11, 2026
86f0322
Added 2 tags: Billfish.Billfish version 3.1.5.12 (#358427)
DandelionSprout Apr 11, 2026
70c0b25
Update HIKARI-FIELD.HIKARI-FIELD-CLIENT installer URL (#358402)
YusufKhalifadev Apr 11, 2026
08573ee
New version: ScummVM.ScummVM version 2026.2.0 (#358404)
Dvd-Znf Apr 11, 2026
a29f1ef
Update version: Microsoft.SafetyScanner version 1.449.29.0 (#358409)
UnownPlain Apr 11, 2026
04378cf
the-sz.Bennett version 1.31 (#358416)
the-sz Apr 11, 2026
6c656ff
the-sz.Bedford version 1.22 (#358417)
the-sz Apr 11, 2026
d2c369e
Automatic Waiver Addition for PR 358414 (#358430)
wingetbot Apr 11, 2026
adeea0c
New version: blacktop.ipswd 3.1.670 (#358411)
blacktop Apr 11, 2026
992ae63
New version: blacktop.ipsw 3.1.670 (#358412)
blacktop Apr 11, 2026
3e08cc5
New version: xpipe-io.xpipe.portable version 22.8 (#358105)
damn-good-b0t Apr 11, 2026
fe11575
New version: CrossPlusA.Balabolka version 2.15.0.914 (#358422)
spectopo Apr 11, 2026
8e40879
New version: Discloud.CLI version 0.12.2 (#358429)
Gorniaky Apr 11, 2026
58de0eb
Automatic Waiver Addition for PR 358422 (#358441)
wingetbot Apr 12, 2026
c24f8ee
New version: Nushell.Nushell version 0.112.1 (#358431)
fdncred Apr 12, 2026
65f7f91
New version: JordanCoin.docmap 0.4.0 (#358432)
JordanCoin Apr 12, 2026
03eb509
New version: Peters.Horizon version 0.2.5 (#358433)
peters Apr 12, 2026
78380ac
Update version: Microsoft.SafetyScanner version 1.445.169.0 (#358434)
UnownPlain Apr 12, 2026
da69999
Update version: Microsoft.SafetyScanner version 1.449.26.0 (#358435)
UnownPlain Apr 12, 2026
cbdbf00
Added 2 tags: Lebo.Lebo version 6.3.60 (#358344)
DandelionSprout Apr 12, 2026
46ec40f
New version: Microsoft.SafetyScanner version 1.449.54.0 (#358437)
UnownPlain Apr 12, 2026
d357075
Update version: Zen-Team.Zen-Browser.Twilight version 1.20t (#358439)
UnownBot Apr 12, 2026
ca335c2
Update: Servo.Servo.Nightly version 1.0 (2026-04-11) (#358440)
spectopo Apr 12, 2026
53637d8
Revert "New version: Discloud.CLI version 0.12.2" (#358444)
Gorniaky Apr 12, 2026
04f5327
New version: pbek.QOwnNotes version 26.4.11 (#358442)
kris6673 Apr 12, 2026
e112e7a
New version: Discloud.CLI version 0.12.3 (#358445)
Gorniaky Apr 12, 2026
b62330f
New version: RemcoStoeten.Dora version 0.0.103 (#358448)
remcostoeten Apr 12, 2026
479133a
Remove NicolasBonamy.Witsy 2.10.0 to KochavaStudios.Witsy 2.10.0 (#35…
SpecterShell Apr 12, 2026
067c738
Remove NicolasBonamy.Witsy 2.11.0 to KochavaStudios.Witsy 2.11.0 (#35…
SpecterShell Apr 12, 2026
498c867
Remove NicolasBonamy.Witsy 2.11.1 to KochavaStudios.Witsy 2.11.1 (#35…
SpecterShell Apr 12, 2026
64e12fa
Remove NicolasBonamy.Witsy 2.11.2 to KochavaStudios.Witsy 2.11.2 (#35…
SpecterShell Apr 12, 2026
ea9c400
Remove NicolasBonamy.Witsy 2.12.0 to KochavaStudios.Witsy 2.12.0 (#35…
SpecterShell Apr 12, 2026
c6b7625
Remove NicolasBonamy.Witsy 2.12.1 to KochavaStudios.Witsy 2.12.1 (#35…
SpecterShell Apr 12, 2026
121061d
Remove NicolasBonamy.Witsy 2.12.2 to KochavaStudios.Witsy 2.12.2 (#35…
SpecterShell Apr 12, 2026
8b74e62
Remove NicolasBonamy.Witsy 2.12.3 to KochavaStudios.Witsy 2.12.3 (#35…
SpecterShell Apr 12, 2026
b9df79e
Remove NicolasBonamy.Witsy 2.12.4 to KochavaStudios.Witsy 2.12.4 (#35…
SpecterShell Apr 12, 2026
d42fe5a
Remove NicolasBonamy.Witsy 2.12.5 to KochavaStudios.Witsy 2.12.5 (#35…
SpecterShell Apr 12, 2026
359da9d
Remove NicolasBonamy.Witsy 2.12.6 to KochavaStudios.Witsy 2.12.6 (#35…
SpecterShell Apr 12, 2026
708f567
Remove NicolasBonamy.Witsy 2.13.0 to KochavaStudios.Witsy 2.13.0 (#35…
SpecterShell Apr 12, 2026
7f612c2
Remove NicolasBonamy.Witsy 2.13.1 to KochavaStudios.Witsy 2.13.1 (#35…
SpecterShell Apr 12, 2026
8611951
Remove NicolasBonamy.Witsy 2.13.2 to KochavaStudios.Witsy 2.13.2 (#35…
SpecterShell Apr 12, 2026
cb005d7
Remove NicolasBonamy.Witsy 2.14.0 to KochavaStudios.Witsy 2.14.0 (#35…
SpecterShell Apr 12, 2026
a967404
Remove NicolasBonamy.Witsy 2.8.2 to KochavaStudios.Witsy 2.8.2 (#358483)
SpecterShell Apr 12, 2026
65b64f4
Remove NicolasBonamy.Witsy 2.9.0 to KochavaStudios.Witsy 2.9.0 (#358485)
SpecterShell Apr 12, 2026
f865c29
Remove NicolasBonamy.Witsy 2.9.1 to KochavaStudios.Witsy 2.9.1 (#358487)
SpecterShell Apr 12, 2026
abeb68c
Remove NicolasBonamy.Witsy 3.0.2 to KochavaStudios.Witsy 3.0.2 (#358489)
SpecterShell Apr 12, 2026
b1371b1
Remove NicolasBonamy.Witsy 3.0.3 to KochavaStudios.Witsy 3.0.3 (#358491)
SpecterShell Apr 12, 2026
7ea51cc
Remove NicolasBonamy.Witsy 3.0.4 to KochavaStudios.Witsy 3.0.4 (#358493)
SpecterShell Apr 12, 2026
ce2ce5d
Remove NicolasBonamy.Witsy 3.1.0 to KochavaStudios.Witsy 3.1.0 (#358495)
SpecterShell Apr 12, 2026
82e7f09
Remove NicolasBonamy.Witsy 3.1.1 to KochavaStudios.Witsy 3.1.1 (#358497)
SpecterShell Apr 12, 2026
c52d11c
Remove NicolasBonamy.Witsy 3.2.0 to KochavaStudios.Witsy 3.2.0 (#358499)
SpecterShell Apr 12, 2026
dfba2c5
Remove NicolasBonamy.Witsy 3.2.1 to KochavaStudios.Witsy 3.2.1 (#358501)
SpecterShell Apr 12, 2026
15e556b
Remove NicolasBonamy.Witsy 3.2.2 to KochavaStudios.Witsy 3.2.2 (#358503)
SpecterShell Apr 12, 2026
0aee57d
Remove NicolasBonamy.Witsy 3.2.3 to KochavaStudios.Witsy 3.2.3 (#358505)
SpecterShell Apr 12, 2026
fc5992f
Remove NicolasBonamy.Witsy 3.3.0 to KochavaStudios.Witsy 3.3.0 (#358507)
SpecterShell Apr 12, 2026
df7a189
Remove NicolasBonamy.Witsy 3.3.1 to KochavaStudios.Witsy 3.3.1 (#358509)
SpecterShell Apr 12, 2026
8fa55e4
Remove NicolasBonamy.Witsy 3.3.2 to KochavaStudios.Witsy 3.3.2 (#358511)
SpecterShell Apr 12, 2026
885b8a4
Remove NicolasBonamy.Witsy 3.4.0 to KochavaStudios.Witsy 3.4.0 (#358513)
SpecterShell Apr 12, 2026
ad4e63c
Remove NicolasBonamy.Witsy 3.4.2 to KochavaStudios.Witsy 3.4.2 (#358515)
SpecterShell Apr 12, 2026
2c4c785
Remove NicolasBonamy.Witsy 3.5.0 to KochavaStudios.Witsy 3.5.0 (#358517)
SpecterShell Apr 12, 2026
285cea0
Remove NicolasBonamy.Witsy 3.5.1 to KochavaStudios.Witsy 3.5.1 (#358519)
SpecterShell Apr 12, 2026
bcf6608
New version: Tencent.TencentVideo version 11.162.7621.0 (#358450)
spectopo Apr 12, 2026
93f2418
New version: 2dust.v2rayN version 7.20.2 (#358447)
2dust Apr 12, 2026
a6fd001
New version: Graphviz.Graphviz version 14.1.5 (#358525)
spectopo Apr 12, 2026
152dc4b
Remove version: AppByTroye.KoodoReader version 2.2.9 (#358530)
DuckDuckStudio Apr 12, 2026
62a005c
New version: jdx.mise version 2026.4.9 (#358522)
damn-good-b0t Apr 12, 2026
4259d9f
New version: Discloud.CLI version 0.12.4 (#358526)
Gorniaky Apr 12, 2026
6ef51d9
New version: GAM-Team.gam version 7.40.02 (#358527)
kris6673 Apr 12, 2026
f95abc7
New version: Anthropic.ClaudeCode version 2.1.104 (#358523)
spectopo Apr 12, 2026
be28438
New version: relmer.RCDir version 5.3.1403 (#358528)
relmer Apr 12, 2026
18cec0e
New version: Kindness-Kismet.Stelliberty version 1.2.277 (#358532)
spectopo Apr 12, 2026
eaa7b62
New version: Jackett.Jackett version 0.24.1567 (#358533)
ilike2burnthing Apr 12, 2026
dc47760
Modify: FrancescoSorge.WinPower version 0.1 (#358529)
DuckDuckStudio Apr 12, 2026
a5ffbad
Update: Waytech.CloudDrive2 version 1.0 (1.0.5) (#358534)
spectopo Apr 12, 2026
ddb059f
New version: bcssov.IronyModManager version 1.27.167 (#358535)
damn-good-b0t Apr 12, 2026
f73e7c5
Add version: Apache.Groovy.4 version 4.0.31 (#358531)
spectopo Apr 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .github/workflows/pesterTests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Pester Tests

on:
pull_request:
branches:
- master
paths:
- "**/*.ps1"
- "**/*.psm1"
- "**/*.psd1"
push:
paths:
- "**/*.ps1"
- "**/*.psm1"
- "**/*.psd1"

permissions:
contents: read # Needed to check out the code
pull-requests: read # Needed to read pull request details

jobs:
test:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install Pester
run: |
# Pester 5.x is already included in Windows runners, but ensure latest version
Install-Module -Name Pester -Force -SkipPublisherCheck -Scope CurrentUser -MinimumVersion 5.0.0
- name: Run Pester Tests
run: |
# Find and run all Pester test files
$testFiles = Get-ChildItem -Recurse -Filter *.Tests.ps1
if ($testFiles) {
Write-Host "Found $($testFiles.Count) test file(s)"
foreach ($testFile in $testFiles) {
Write-Host "Running tests in: $($testFile.FullName)"
}

# Run all tests
$config = New-PesterConfiguration
$config.Run.Path = $testFiles.FullName
$config.Run.Exit = $true
$config.Output.Verbosity = 'Detailed'
$config.TestResult.Enabled = $true

Invoke-Pester -Configuration $config
} else {
Write-Host "No Pester test files found."
}
2 changes: 2 additions & 0 deletions .github/workflows/scriptAnalyzer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@ on:
paths:
- "**/*.ps1"
- "**/*.psm1"
- "**/*.psd1"
push:
paths:
- "**/*.ps1"
- "**/*.psm1"
- "**/*.psd1"

permissions:
contents: read # Needed to check out the code
Expand Down
94 changes: 94 additions & 0 deletions Tools/Modules/YamlCreate/YamlCreate.InstallerDetection/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# YamlCreate.InstallerDetection Tests

This directory contains Pester tests for the YamlCreate.InstallerDetection PowerShell module.

## Overview

The test suite validates the functionality of the installer detection module, which provides functions to:
- Parse PE file structures
- Detect various installer types (ZIP, MSIX, MSI, WIX, Nullsoft, Inno, Burn)
- Identify font files
- Resolve installer types from file paths

## Running the Tests

### Prerequisites

- PowerShell 7.0 or later
- Pester 5.x (included with PowerShell 7+)

### Run All Tests

From the module directory, run:

```powershell
Invoke-Pester -Path ./YamlCreate.InstallerDetection.Tests.ps1
```

### Run Tests with Detailed Output

For more detailed test output:

```powershell
Invoke-Pester -Path ./YamlCreate.InstallerDetection.Tests.ps1 -Output Detailed
```

### Run Tests with Code Coverage

To see code coverage metrics:

```powershell
Invoke-Pester -Path ./YamlCreate.InstallerDetection.Tests.ps1 -CodeCoverage ./YamlCreate.InstallerDetection.psm1
```

## Test Structure

The test suite is organized into the following sections:

### Module Tests
- Module import validation
- Exported functions verification

### Function Tests
- **Get-OffsetBytes**: Tests for byte array extraction with various offsets and endianness
- **Get-PESectionTable**: Tests for PE file parsing
- **Test-IsZip**: Tests for ZIP file detection
- **Test-IsMsix**: Tests for MSIX/APPX detection
- **Test-IsMsi**: Tests for MSI installer detection
- **Test-IsWix**: Tests for WIX installer detection
- **Test-IsNullsoft**: Tests for Nullsoft installer detection
- **Test-IsInno**: Tests for Inno Setup installer detection
- **Test-IsBurn**: Tests for Burn installer detection
- **Test-IsFont**: Tests for font file detection (TTF, OTF, TTC)
- **Resolve-InstallerType**: Tests for the main installer type resolution function

## Known Limitations

Some tests are skipped due to complexity or external dependencies:

1. **ZIP Archive Tests**: Tests that require complete valid ZIP archives are skipped as they would need complex ZIP structure generation
2. **PE File Tests**: Some PE-related tests are skipped when they would require reading non-existent files
3. **External Dependencies**: The module relies on external commands (`Get-MSITable`, `Get-MSIProperty`, `Get-Win32ModuleResource`) that are stubbed in the test environment

## Test Coverage

Current test coverage includes:
- 32 passing tests
- 3 skipped tests (require complex setup)
- Covers all 11 exported functions
- Tests both positive and negative scenarios
- Validates edge cases and error handling

## Contributing

When adding new functions to the module:
1. Add corresponding tests to `YamlCreate.InstallerDetection.Tests.ps1`
2. Follow the existing test structure (Describe → Context → It blocks)
3. Use descriptive test names that explain what is being tested
4. Include both positive and negative test cases
5. Clean up any temporary files created during tests

## Additional Resources

- [Pester Documentation](https://pester.dev/)
- [PowerShell Testing Best Practices](https://pester.dev/docs/usage/test-file-structure)
Loading
Loading