tests/Private.Processing.Tests.ps1
|
#Requires -Modules @{ ModuleName = 'Pester'; ModuleVersion = '5.0.0' } <# .SYNOPSIS Pester tests for Private/Processing modules. .DESCRIPTION Tests processing pipeline functions: cache file building, advisory jobs, draw.io jobs, policy jobs, security center jobs, subscription jobs, automation processing, extra jobs, and main process job. No live Azure authentication is required. .NOTES Author: AzureScout Contributors Version: 1.0.0 #> BeforeAll { $script:ModuleRoot = Split-Path -Parent $PSScriptRoot $script:ProcessingPath = Join-Path $script:ModuleRoot 'Modules' 'Private' 'Processing' } # ===================================================================== # FILE EXISTENCE # ===================================================================== Describe 'Private/Processing Module Files Exist' { $processingFiles = @( 'Build-AZTICacheFiles.ps1', 'Invoke-AZTIAdvisoryJob.ps1', 'Invoke-AZTIDrawIOJob.ps1', 'Invoke-AZTIPolicyJob.ps1', 'Invoke-AZTISecurityCenterJob.ps1', 'Invoke-AZTISubJob.ps1', 'Start-AZTIAutProcessJob.ps1', 'Start-AZTIExtraJobs.ps1', 'Start-AZTIProcessJob.ps1' ) It '<_> exists' -ForEach $processingFiles { Join-Path $script:ProcessingPath $_ | Should -Exist } } # ===================================================================== # SYNTAX VALIDATION # ===================================================================== Describe 'Private/Processing Script Syntax Validation' { $processingFiles = @( 'Build-AZTICacheFiles.ps1', 'Invoke-AZTIAdvisoryJob.ps1', 'Invoke-AZTIDrawIOJob.ps1', 'Invoke-AZTIPolicyJob.ps1', 'Invoke-AZTISecurityCenterJob.ps1', 'Invoke-AZTISubJob.ps1', 'Start-AZTIAutProcessJob.ps1', 'Start-AZTIExtraJobs.ps1', 'Start-AZTIProcessJob.ps1' ) It '<_> parses without errors' -ForEach $processingFiles { $filePath = Join-Path $script:ProcessingPath $_ $errors = $null [System.Management.Automation.Language.Parser]::ParseFile($filePath, [ref]$null, [ref]$errors) $errors | Should -BeNullOrEmpty } } # ===================================================================== # FUNCTION DEFINITIONS # ===================================================================== Describe 'Private/Processing Function Definitions' { It 'Build-AZTICacheFiles.ps1 defines Build-AZSCCacheFiles' { $content = Get-Content (Join-Path $script:ProcessingPath 'Build-AZTICacheFiles.ps1') -Raw $content | Should -Match 'function\s+Build-AZSCCacheFiles' } It 'Invoke-AZTIAdvisoryJob.ps1 defines Invoke-AZSCAdvisoryJob' { $content = Get-Content (Join-Path $script:ProcessingPath 'Invoke-AZTIAdvisoryJob.ps1') -Raw $content | Should -Match 'function\s+Invoke-AZSCAdvisoryJob' } It 'Invoke-AZTIDrawIOJob.ps1 defines Invoke-AZSCDrawIOJob' { $content = Get-Content (Join-Path $script:ProcessingPath 'Invoke-AZTIDrawIOJob.ps1') -Raw $content | Should -Match 'function\s+Invoke-AZSCDrawIOJob' } It 'Invoke-AZTIPolicyJob.ps1 defines Invoke-AZSCPolicyJob' { $content = Get-Content (Join-Path $script:ProcessingPath 'Invoke-AZTIPolicyJob.ps1') -Raw $content | Should -Match 'function\s+Invoke-AZSCPolicyJob' } It 'Invoke-AZTISecurityCenterJob.ps1 defines Invoke-AZSCSecurityCenterJob' { $content = Get-Content (Join-Path $script:ProcessingPath 'Invoke-AZTISecurityCenterJob.ps1') -Raw $content | Should -Match 'function\s+Invoke-AZSCSecurityCenterJob' } It 'Invoke-AZTISubJob.ps1 defines Invoke-AZSCSubJob' { $content = Get-Content (Join-Path $script:ProcessingPath 'Invoke-AZTISubJob.ps1') -Raw $content | Should -Match 'function\s+Invoke-AZSCSubJob' } It 'Start-AZTIAutProcessJob.ps1 defines Start-AZSCAutProcessJob' { $content = Get-Content (Join-Path $script:ProcessingPath 'Start-AZTIAutProcessJob.ps1') -Raw $content | Should -Match 'function\s+Start-AZSCAutProcessJob' } It 'Start-AZTIExtraJobs.ps1 defines Start-AZSCExtraJobs' { $content = Get-Content (Join-Path $script:ProcessingPath 'Start-AZTIExtraJobs.ps1') -Raw $content | Should -Match 'function\s+Start-AZSCExtraJobs' } It 'Start-AZTIProcessJob.ps1 defines Start-AZSCProcessJob' { $content = Get-Content (Join-Path $script:ProcessingPath 'Start-AZTIProcessJob.ps1') -Raw $content | Should -Match 'function\s+Start-AZSCProcessJob' } } |