Files
sufw-webseite-terminplanung/development-system/tests/PerspektivwerkRoute.Tests.ps1
T

40 lines
2.0 KiB
PowerShell

$projectRoot = Split-Path -Parent $PSScriptRoot
$mockupPath = Join-Path $projectRoot 'public\perspektivwerk\index.html'
$bookingScriptPath = Join-Path $projectRoot 'public\perspektivwerk\js\booking.js'
$bookingStylesPath = Join-Path $projectRoot 'public\perspektivwerk\js\booking.css'
$contaoBookingScriptPath = Join-Path $projectRoot 'public\booking\booking.js'
$contaoBookingStylesPath = Join-Path $projectRoot 'public\booking\booking.css'
$htaccessPath = Join-Path $projectRoot 'public\.htaccess'
Describe 'Perspektivwerk static route' {
It 'contains the static mockup entry point' {
(Test-Path -LiteralPath $mockupPath) | Should Be $true
}
It 'embeds the appointment booking component with its public assets' {
$mockup = Get-Content -LiteralPath $mockupPath -Raw
(Test-Path -LiteralPath $bookingScriptPath) | Should Be $true
(Test-Path -LiteralPath $bookingStylesPath) | Should Be $true
$mockup | Should Match 'href="js/booking\.css"'
$mockup | Should Match 'data-sufw-booking'
$mockup | Should Match 'src="js/booking\.js"'
}
It 'keeps the Contao and static-preview asset copies identical' {
(Test-Path -LiteralPath $contaoBookingScriptPath) | Should Be $true
(Test-Path -LiteralPath $contaoBookingStylesPath) | Should Be $true
(Get-FileHash -LiteralPath $bookingScriptPath).Hash | Should Be (Get-FileHash -LiteralPath $contaoBookingScriptPath).Hash
(Get-FileHash -LiteralPath $bookingStylesPath).Hash | Should Be (Get-FileHash -LiteralPath $contaoBookingStylesPath).Hash
}
It 'routes /perspektivwerk to the static entry point before the Contao fallback' {
$htaccess = Get-Content -LiteralPath $htaccessPath -Raw
$staticRouteIndex = $htaccess.IndexOf('RewriteRule ^perspektivwerk/?$ perspektivwerk/index.html [L]')
$fallbackIndex = $htaccess.IndexOf('RewriteRule ^ %{ENV:BASE}/index.php [L]')
$staticRouteIndex | Should BeGreaterThan -1
$staticRouteIndex | Should BeLessThan $fallbackIndex
}
}