Consume Aetheria provider evidence from owner pack
This commit is contained in:
parent
3dce24961d
commit
4ab9fa5185
26 changed files with 103 additions and 884 deletions
|
|
@ -94,12 +94,6 @@ try {
|
|||
--expect-provider-receipt-state aetheria:accepted `
|
||||
--expect-provider-receipt-state aetheria:pending `
|
||||
--expect-provider-receipt-state aetheria:reconciled `
|
||||
--expect-provider-handoff aetheria `
|
||||
--expect-provider-handoff-move aetheria:provider-advertisement:current:exists:aetheria.provider-advertisement.json `
|
||||
--expect-provider-handoff-move aetheria:interactive-world-surface:current:exists:aetheria-world-surface.json `
|
||||
--expect-provider-handoff-move aetheria:interactive-world-surface:current:exists:aetheria-world-surface.conformance.json `
|
||||
--expect-provider-handoff-move aetheria:unity-playable-world-asset-manifest:current:exists:aetheria.unity-playable-world-asset-manifest.json `
|
||||
--expect-provider-handoff-move aetheria:provider-scenario:current:exists:aetheria-world-scenario.json `
|
||||
--expect-provider-handoff-move aetheria:provider-scenario:current:exists:run-aetheria-conformance-consumer-smoke.ps1
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "Aetheria conformance consumer smoke failed with exit code $LASTEXITCODE"
|
||||
|
|
|
|||
|
|
@ -1,125 +0,0 @@
|
|||
param(
|
||||
[string] $HandoffPath = "web\fixtures\aetheria-provider-handoff.json"
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$projectRoot = Split-Path -Parent $PSScriptRoot
|
||||
$absoluteHandoffPath = if ([System.IO.Path]::IsPathRooted($HandoffPath)) {
|
||||
$HandoffPath
|
||||
} else {
|
||||
Join-Path $projectRoot $HandoffPath
|
||||
}
|
||||
|
||||
if (-not (Test-Path -LiteralPath $absoluteHandoffPath)) {
|
||||
throw "Aetheria provider handoff manifest not found: $absoluteHandoffPath"
|
||||
}
|
||||
|
||||
$handoff = Get-Content -LiteralPath $absoluteHandoffPath -Raw | ConvertFrom-Json
|
||||
|
||||
if ($handoff.schema -ne "gamecult.eve.provider_handoff.v1") {
|
||||
throw "Unexpected Aetheria provider handoff schema: $($handoff.schema)"
|
||||
}
|
||||
if ($handoff.providerId -ne "aetheria") {
|
||||
throw "Unexpected Aetheria provider handoff provider: $($handoff.providerId)"
|
||||
}
|
||||
if ($handoff.ownerRepo -ne "Aetheria") {
|
||||
throw "Unexpected Aetheria provider handoff owner: $($handoff.ownerRepo)"
|
||||
}
|
||||
if ($handoff.currentHostRepo -ne "Eve") {
|
||||
throw "Unexpected Aetheria provider handoff host: $($handoff.currentHostRepo)"
|
||||
}
|
||||
|
||||
foreach ($pathProperty in @("advertisementPath", "scenarioPath")) {
|
||||
$relativePath = $handoff.$pathProperty
|
||||
if (-not $relativePath) {
|
||||
throw "Aetheria provider handoff missing $pathProperty"
|
||||
}
|
||||
$absolutePath = Join-Path $projectRoot $relativePath
|
||||
if (-not (Test-Path -LiteralPath $absolutePath)) {
|
||||
throw "Aetheria provider handoff references missing $($pathProperty): $relativePath"
|
||||
}
|
||||
}
|
||||
|
||||
$advertisement = Get-Content -LiteralPath (Join-Path $projectRoot $handoff.advertisementPath) -Raw | ConvertFrom-Json
|
||||
$scenario = Get-Content -LiteralPath (Join-Path $projectRoot $handoff.scenarioPath) -Raw | ConvertFrom-Json
|
||||
|
||||
if ($advertisement.providerId -ne $handoff.providerId) {
|
||||
throw "Aetheria handoff provider does not match advertisement provider: $($advertisement.providerId)"
|
||||
}
|
||||
if ($scenario.providerId -ne $handoff.providerId) {
|
||||
throw "Aetheria handoff provider does not match scenario provider: $($scenario.providerId)"
|
||||
}
|
||||
if ($scenario.ownerRepo -ne $handoff.ownerRepo) {
|
||||
throw "Aetheria scenario owner does not match handoff owner: $($scenario.ownerRepo)"
|
||||
}
|
||||
|
||||
$worldSurfaces = @{}
|
||||
foreach ($surface in @($advertisement.surfaces)) {
|
||||
if ($surface.surfaceId -and $surface.worldInteraction) {
|
||||
$worldSurfaces[$surface.surfaceId] = $surface
|
||||
}
|
||||
}
|
||||
foreach ($requirement in @($scenario.requires.worldSurfaces)) {
|
||||
if (-not $worldSurfaces.ContainsKey($requirement.surfaceId)) {
|
||||
throw "Aetheria scenario requires world surface not advertised with worldInteraction: $($requirement.surfaceId)"
|
||||
}
|
||||
$advertisedSurface = $worldSurfaces[$requirement.surfaceId]
|
||||
if ($advertisedSurface.surfaceKind -ne $requirement.surfaceKind) {
|
||||
throw "Aetheria world surface kind mismatch for $($requirement.surfaceId): $($advertisedSurface.surfaceKind)"
|
||||
}
|
||||
foreach ($property in @("projectionKind", "commandBoundary", "receiptSchema")) {
|
||||
if ($advertisedSurface.worldInteraction.$property -ne $requirement.$property) {
|
||||
throw "Aetheria world surface $($requirement.surfaceId) $property mismatch: $($advertisedSurface.worldInteraction.$property)"
|
||||
}
|
||||
}
|
||||
if (-not $advertisedSurface.worldInteraction.ownership) {
|
||||
throw "Aetheria world surface $($requirement.surfaceId) missing ownership rule"
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($fixtureId in @($handoff.fixtureIds)) {
|
||||
if (-not (@($scenario.requires.fixtures) -contains $fixtureId)) {
|
||||
throw "Aetheria provider handoff fixture is not required by scenario: $fixtureId"
|
||||
}
|
||||
}
|
||||
|
||||
$moveSets = @($handoff.moveSets)
|
||||
foreach ($id in @("provider-advertisement", "interactive-world-surface", "provider-scenario")) {
|
||||
$moveSet = $moveSets | Where-Object { $_.id -eq $id } | Select-Object -First 1
|
||||
if (-not $moveSet) {
|
||||
throw "Aetheria provider handoff missing move set: $id"
|
||||
}
|
||||
if ($moveSet.destinationOwner -ne "Aetheria") {
|
||||
throw "Aetheria provider handoff move set $id has unexpected destination owner: $($moveSet.destinationOwner)"
|
||||
}
|
||||
if (-not $moveSet.replacementProof) {
|
||||
throw "Aetheria provider handoff move set $id missing replacement proof"
|
||||
}
|
||||
foreach ($relativePath in @($moveSet.currentPaths)) {
|
||||
$absolutePath = Join-Path $projectRoot $relativePath
|
||||
if (-not (Test-Path -LiteralPath $absolutePath)) {
|
||||
throw "Aetheria provider handoff move set $id references missing current path: $relativePath"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($contract in @(
|
||||
"gamecult.eve.surface.v1",
|
||||
"gamecult.eve.command.v1",
|
||||
"gamecult.eve.provider_advertisement.v1",
|
||||
"gamecult.eve.provider_scenario.v1",
|
||||
"gamecult.eve.conformance_export.v1"
|
||||
)) {
|
||||
if (-not (@($handoff.contractInputs) -contains $contract)) {
|
||||
throw "Aetheria provider handoff missing contract input: $contract"
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($proof in @($handoff.requiredExternalProofs)) {
|
||||
if (-not $proof) {
|
||||
throw "Aetheria provider handoff contains an empty required external proof"
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "Aetheria provider handoff smoke passed: $absoluteHandoffPath"
|
||||
|
|
@ -51,11 +51,9 @@ try {
|
|||
--expect-schema gamecult.eve.web_layout_probe.v1 `
|
||||
--expect-capability-gap runtime:Fensalir:direct2d:capture:missing `
|
||||
--expect-local-provider-catalog web:valid:local-provider-catalog.json `
|
||||
--expect-local-provider-catalog-provider web:aetheria `
|
||||
--expect-local-provider-catalog-provider web:eve.world-smoke `
|
||||
--expect-local-provider-catalog-provider web:repixelizer `
|
||||
--expect-local-provider-catalog-provider web:gamecult.home.vn `
|
||||
--expect-local-provider-catalog-advertisement web:aetheria.provider-advertisement.json `
|
||||
--expect-local-provider-catalog-advertisement web:eve-world-smoke.provider-advertisement.json `
|
||||
--expect-local-provider-catalog-advertisement web:repixelizer.provider-advertisement.json `
|
||||
--expect-local-provider-catalog-advertisement web:sai-vn.provider-advertisement.json `
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
param(
|
||||
[string] $CapabilityManifestPath = "runtimes\incubating\eve-tui\eve-runtime-capability.json",
|
||||
[string] $AdvertisementPath = "web\fixtures\aetheria.provider-advertisement.json",
|
||||
[string] $AdvertisementPath = "..\Aetheria\conformance\eve\aetheria.provider-advertisement.json",
|
||||
[string] $OutputPath = "artifacts\evetui-capture-contract\latest\capture-request.json",
|
||||
[string] $Stamp = "smoke"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
param(
|
||||
[string] $CapabilityManifestPath = "runtimes\incubating\eve-tui\eve-runtime-capability.json",
|
||||
[string] $AdvertisementPath = "web\fixtures\aetheria.provider-advertisement.json",
|
||||
[string] $SurfacePath = "web\fixtures\aetheria-world-surface.json",
|
||||
[string] $AdvertisementPath = "..\Aetheria\conformance\eve\aetheria.provider-advertisement.json",
|
||||
[string] $SurfacePath = "..\Aetheria\conformance\eve\aetheria-world-surface.json",
|
||||
[string] $OutputPath = "artifacts\evetui-capture\latest\tui-grid.json",
|
||||
[string] $RequestOutputPath = "artifacts\evetui-capture\latest\capture-request.json",
|
||||
[string] $Stamp = "latest",
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ try {
|
|||
"E:\Projects\EvePlugins\artifacts\tex-math\runtime-witness.json" `
|
||||
".\artifacts\conformance\latest"
|
||||
& (Join-Path $PSScriptRoot "run-eveconformance-handoff-smoke.ps1")
|
||||
& (Join-Path $PSScriptRoot "run-aetheria-provider-handoff-smoke.ps1")
|
||||
& (Join-Path $PSScriptRoot "run-eveelectron-owner-smoke.ps1")
|
||||
& (Join-Path $PSScriptRoot "run-evetui-split-handoff-smoke.ps1")
|
||||
& (Join-Path $PSScriptRoot "run-evetui-lifecycle-smoke.ps1")
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ node $consumerScript $consumerExport `
|
|||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.targetId:unity-uitoolkit" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.requestSchema:gamecult.eve.runtime_capture_request.v1" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.requestBuilder:scripts/build-uitoolkit-capture-request.ps1" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.advertisementPath:web/fixtures/aetheria.provider-advertisement.json" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.advertisementPath:../Aetheria/conformance/eve/aetheria.provider-advertisement.json" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.conformanceAttachment:runtime.captureArtifacts[]" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.requiredProvider:aetheria" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.requiredSurface:aetheria.daemon.game" `
|
||||
|
|
@ -258,7 +258,7 @@ node $consumerScript $consumerExport `
|
|||
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.targetId:unity-scene" `
|
||||
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.requestSchema:gamecult.eve.runtime_capture_request.v1" `
|
||||
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.requestBuilder:scripts/build-capture-request.ps1" `
|
||||
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.advertisementPath:GameCult/Aetheria:web/fixtures/aetheria.provider-advertisement.json" `
|
||||
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.advertisementPath:Aetheria:conformance/eve/aetheria.provider-advertisement.json" `
|
||||
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.requiredSurface:aetheria.daemon.game" `
|
||||
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.additionalProviderSurfaces.0.providerId:eve.world-smoke" `
|
||||
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.additionalProviderSurfaces.0.surfaceId:eve.world-smoke.surface" `
|
||||
|
|
@ -299,7 +299,7 @@ node $consumerScript $consumerExport `
|
|||
--expect-runtime-lifecycle-field "tui:capture:captureContract.targetId:tui" `
|
||||
--expect-runtime-lifecycle-field "tui:capture:captureContract.requestSchema:gamecult.eve.runtime_capture_request.v1" `
|
||||
--expect-runtime-lifecycle-field "tui:capture:captureContract.requestBuilder:tools/evetui/evetui-capture-contract.mjs" `
|
||||
--expect-runtime-lifecycle-field "tui:capture:captureContract.advertisementPath:web/fixtures/aetheria.provider-advertisement.json" `
|
||||
--expect-runtime-lifecycle-field "tui:capture:captureContract.advertisementPath:../Aetheria/conformance/eve/aetheria.provider-advertisement.json" `
|
||||
--expect-runtime-lifecycle-field "tui:capture:captureContract.requiredSurface:aetheria.daemon.game" `
|
||||
--expect-runtime-lifecycle-field "tui:capture:captureContract.additionalProviderSurfaces.0.providerId:eve.world-smoke" `
|
||||
--expect-runtime-lifecycle-field "tui:capture:captureContract.additionalProviderSurfaces.0.surfaceId:eve.world-smoke.surface" `
|
||||
|
|
|
|||
Loading…
Reference in a new issue