Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
1aef82d
Remove ThaUnknown.Miru 6.4.13 (#358387)
Trenly Apr 11, 2026
715d4a3
New version: OOMOL.OOMOLStudio version 1.5.3 (#358131)
spectopo Apr 11, 2026
371a77f
New version: DuckDuckGo.DesktopBrowser.Preview version 0.154.1.0 (#35…
spectopo Apr 11, 2026
b6ebc44
Added 2 tags: KitLib.Kite version 0.2.0 (#358375)
DandelionSprout Apr 11, 2026
edaf28e
Added 2 tags: UNIkeEN.SJMCL version 0.8.3 (#358377)
DandelionSprout Apr 11, 2026
4faca23
Added 4 tags: ModelScope.FlowBench version 0.6.0 (#358388)
DandelionSprout Apr 11, 2026
aa760a9
New version: rejetto.hfs version 3.0.10 (#358341)
damn-good-b0t Apr 11, 2026
ac326af
New version: blueberrycongee.TermCanvas version 0.27.5 (#358357)
spectopo Apr 11, 2026
b24c662
New version: raphamorim.rio version 0.3.5 (#358359)
rodrigoborgesdeoliveira Apr 11, 2026
850f16e
Added 2 tags: NetEase.CloudMusic version 3.1.30.205130 (#358386)
DandelionSprout Apr 11, 2026
486b596
Added 2 tags: Kingdee.CloudHub version 5.0.5 (#358391)
DandelionSprout Apr 11, 2026
46ac179
New package: 123.123pan version 3.1.3.0 (#358392)
DandelionSprout Apr 11, 2026
bdfb103
Added 2 tags: Baidu.BaiduNetdisk version 8.3.8 (#358394)
DandelionSprout Apr 11, 2026
741f0a9
Added 2 tags: JinweiZhiguang.MasterGo version 1.10.6 (#358396)
DandelionSprout Apr 11, 2026
f50b5ec
Added 2 tags: bshuzhang.PPLink version 16.0.0 (#358398)
DandelionSprout Apr 11, 2026
9671f4b
Added 2 tags: Nutstore.Nutstore version 7.2.3 (#358282)
DandelionSprout Apr 11, 2026
35443a9
New version: Wagnardsoft.DisplayDriverUninstaller version 18.1.5.2 (#…
aisgbnok Apr 11, 2026
7ebc533
Tofuutils.Tenv: v4.10.1 (#358366)
kvendingoldo Apr 11, 2026
4065b0d
Automatic Waiver Addition for PR 358236 (#358405)
wingetbot Apr 11, 2026
4702059
Added 2 tags: 360.360SE version 16.1.2000.64 (#358234)
DandelionSprout Apr 11, 2026
ae71240
Added 4 tags: 360.NamiAI version 1.3.1563.64 (#358241)
DandelionSprout Apr 11, 2026
1f2a35c
New version: hellodigua.ChatLab version 0.17.0 (#358397)
spectopo Apr 11, 2026
911d953
New version: Hitalin.NoteDeck version 0.10.2 (#358261)
hitalin Apr 11, 2026
96214ff
Added 2 tags: Xiaomi.MiAssistant version 4.2.1028.10 (#358393)
DandelionSprout Apr 11, 2026
34ea94d
New version: Jellyfin2Samsung.Jellyfin2Samsung version 2.2.0.7 (#358399)
PatrickSt1991 Apr 11, 2026
99bad34
Remove .validation for empty folder WonderIdea.WanCaiVR (#357516)
Trenly Apr 11, 2026
3469a93
Remove .validation for empty folder WonderIdea.HandActionPlayer (#357…
Trenly Apr 11, 2026
d29db88
Remove .validation for empty folder WonderIdea.DrawingMaster (#357514)
Trenly Apr 11, 2026
4f04a85
Remove .validation for empty folder ULAB.XZAid (#357511)
Trenly Apr 11, 2026
515ec43
Remove .validation for empty folder ULAB.PaintAid (#357510)
Trenly Apr 11, 2026
069ae35
Remove .validation for empty folder StarFinanz.StarMoney14Deluxe (#35…
Trenly Apr 11, 2026
71572b1
Remove .validation for empty folder SilouhetteStudio.Silouhette (#357…
Trenly Apr 11, 2026
5a6fcbc
Remove .validation for empty folder Nvidia.GeForceExperience (#357502)
Trenly Apr 11, 2026
5768022
Remove .validation for empty folder Microsoft.Skype (#357500)
Trenly Apr 11, 2026
5dce2ac
Remove .validation for empty folder Krisp.Krisp (#357499)
Trenly Apr 11, 2026
642deb0
Remove .validation for empty folder GamaPlatform.GamaAlpha (#357497)
Trenly Apr 11, 2026
b62d9e7
Remove .validation for empty folder Feixiang.Feixiang (#357496)
Trenly Apr 11, 2026
fc42e75
Remove .validation for empty folder EdrawSoft.MindMaster (#357495)
Trenly Apr 11, 2026
df35596
Remove .validation for empty folder DiegoFernandes.jsdesign (#357494)
Trenly Apr 11, 2026
8832334
Remove .validation for empty folder CopyTrans.CopyTransHEIC (#357493)
Trenly Apr 11, 2026
f359de3
Remove .validation for empty folder behringer.XAIREdit (#357491)
Trenly Apr 11, 2026
c41a077
Remove .validation for empty folder SmartGameBooster.SmartGameBooster…
Trenly Apr 11, 2026
026cf0a
Remove .validation for empty folder 7zip.7zip.Alpha.msi (#357484)
Trenly Apr 11, 2026
eea6830
Remove .validation for empty folder 7zip.7zip.Alpha.exe (#357483)
Trenly Apr 11, 2026
9f784e7
Remove: Lenovo.SUHelper version 10.2501.15.0 (#357460)
Trenly Apr 11, 2026
4859dc4
Remove: the-code-fixer-23.go-toolkit version 0.11.5-alpha (#357636)
Trenly Apr 11, 2026
d69415d
Remove: Postman.Postman.Canary version 11.2.14-canary240621-0734 (#35…
Trenly Apr 11, 2026
dca6af2
NekoBox 5.10.36 Pull Request (#358003)
qr243vbi Apr 11, 2026
12b3a30
New version: JayPrall.ColorCop version 5.5.7 (#358401)
j4y Apr 11, 2026
d91a383
New version: Dyad.Dyad version 0.43.0 (#357618)
zeldrisho Apr 11, 2026
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
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