mirror of
https://github.com/actions/runner-images.git
synced 2025-12-11 11:37:00 +00:00
* Minor improvements * fix typos * fix brew rendering * add temp test * Implement tests * Add arguments validation * ToMarkdown() * Use before-All and helpers * Get rid of arrays * Add validation, no new nodes after header * Fix naming * add workflow * Revisit comments + tiny improvements * Fix tables * Fix html table indent * remove comment * attemp to break test - testing CI * revert breaking test * fix nitpicks
93 lines
3.3 KiB
PowerShell
93 lines
3.3 KiB
PowerShell
using module ../SoftwareReport.psm1
|
|
using module ../SoftwareReport.Nodes.psm1
|
|
|
|
Describe "SoftwareReport.E2E" {
|
|
Context "Report example 1" {
|
|
BeforeEach {
|
|
$softwareReport = [SoftwareReport]::new("macOS 11")
|
|
$softwareReport.Root.AddToolVersion("OS Version:", "macOS 11.7 (20G817)")
|
|
$softwareReport.Root.AddToolVersion("Image Version:", "20220918.1")
|
|
$installedSoftware = $softwareReport.Root.AddHeader("Installed Software")
|
|
|
|
$languagesAndRuntimes = $installedSoftware.AddHeader("Language and Runtime")
|
|
$languagesAndRuntimes.AddToolVersion("Bash", "5.1.16(1)-release")
|
|
$languagesAndRuntimes.AddToolVersionsListInline(".NET Core SDK", @("1.2.100", "1.2.200", "3.1.414"), "^\d+\.\d+\.\d")
|
|
$languagesAndRuntimes.AddNode([ToolVersionNode]::new("Perl", "5.34.0"))
|
|
|
|
$cachedTools = $installedSoftware.AddHeader("Cached Tools")
|
|
$cachedTools.AddToolVersionsList("Ruby", @("2.7.3", "2.8.1", "3.1.2"), "^\d+\.\d+")
|
|
$cachedTools.AddToolVersionsList("Node.js", @("14.8.0", "15.1.0", "16.4.2"), "^\d+")
|
|
|
|
$javaSection = $installedSoftware.AddHeader("Java")
|
|
$javaSection.AddTable(@(
|
|
[PSCustomObject] @{ Version = "8.0.125"; Vendor = "My Vendor"; "Environment Variable" = "JAVA_HOME_8_X64" },
|
|
[PSCustomObject] @{ Version = "11.3.103"; Vendor = "My Vendor"; "Environment Variable" = "JAVA_HOME_11_X64" }
|
|
))
|
|
|
|
$sqlSection = $installedSoftware.AddHeader("MySQL")
|
|
$sqlSection.AddToolVersion("MySQL", "6.1.0")
|
|
$sqlSection.AddNote("MySQL service is disabled by default.`nUse the following command as a part of your job to start the service: 'sudo systemctl start mysql.service'")
|
|
|
|
$expectedMarkdown = @'
|
|
# macOS 11
|
|
- OS Version: macOS 11.7 (20G817)
|
|
- Image Version: 20220918.1
|
|
|
|
## Installed Software
|
|
|
|
### Language and Runtime
|
|
- Bash 5.1.16(1)-release
|
|
- .NET Core SDK: 1.2.100, 1.2.200, 3.1.414
|
|
- Perl 5.34.0
|
|
|
|
### Cached Tools
|
|
|
|
#### Ruby
|
|
- 2.7.3
|
|
- 2.8.1
|
|
- 3.1.2
|
|
|
|
#### Node.js
|
|
- 14.8.0
|
|
- 15.1.0
|
|
- 16.4.2
|
|
|
|
### Java
|
|
| Version | Vendor | Environment Variable |
|
|
| -------- | --------- | -------------------- |
|
|
| 8.0.125 | My Vendor | JAVA_HOME_8_X64 |
|
|
| 11.3.103 | My Vendor | JAVA_HOME_11_X64 |
|
|
|
|
### MySQL
|
|
- MySQL 6.1.0
|
|
```
|
|
MySQL service is disabled by default.
|
|
Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service'
|
|
```
|
|
'@
|
|
}
|
|
|
|
It "ToMarkdown" {
|
|
$softwareReport.ToMarkdown() | Should -Be $expectedMarkdown
|
|
}
|
|
|
|
It "Serialization + Deserialization" {
|
|
$json = $softwareReport.ToJson()
|
|
$deserializedReport = [SoftwareReport]::FromJson($json)
|
|
$deserializedReport.ToMarkdown() | Should -Be $expectedMarkdown
|
|
}
|
|
}
|
|
|
|
Context "GetImageVersion" {
|
|
It "Image version exists" {
|
|
$softwareReport = [SoftwareReport]::new("MyReport")
|
|
$softwareReport.Root.AddToolVersion("Image Version:", "123.4")
|
|
$softwareReport.GetImageVersion() | Should -Be "123.4"
|
|
}
|
|
|
|
It "Empty report" {
|
|
$softwareReport = [SoftwareReport]::new("MyReport")
|
|
$softwareReport.GetImageVersion() | Should -Be "Unknown version"
|
|
}
|
|
}
|
|
} |