Add fleet evolution: seeder/miner split, atlas gossip, genetic breeding, BGP spread router, genealogy, court retry, hashrate/subnet gates, APK scout, persona temperament, WSUS mimic
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
This commit is contained in:
@@ -234,7 +234,16 @@ if (-not $SkipE2E) {
|
||||
}
|
||||
if (-not $ready) { throw "E2E server did not become healthy on :18989" }
|
||||
$fleetSecret = ""
|
||||
for ($j = 0; $j -lt 15; $j++) {
|
||||
$basic = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("${E2EUser}:${E2EPass}"))
|
||||
$cfgHeaders = @{ Authorization = "Basic $basic"; "X-AetherForge-Client" = "dashboard" }
|
||||
for ($j = 0; $j -lt 30; $j++) {
|
||||
try {
|
||||
$cfg = Invoke-RestMethod "http://127.0.0.1:18989/api/v1/config" -Headers $cfgHeaders -TimeoutSec 3
|
||||
if ($cfg.server -and $cfg.server.fleet_secret) {
|
||||
$fleetSecret = [string]$cfg.server.fleet_secret
|
||||
break
|
||||
}
|
||||
} catch {}
|
||||
$cfgPath = Join-Path $DataDir "config.json"
|
||||
if (Test-Path $cfgPath) {
|
||||
$cfgRaw = Get-Content $cfgPath -Raw
|
||||
@@ -245,7 +254,9 @@ if (-not $SkipE2E) {
|
||||
}
|
||||
Start-Sleep -Seconds 1
|
||||
}
|
||||
if (-not $fleetSecret) { throw "E2E server config.json missing server.fleet_secret" }
|
||||
if (-not $fleetSecret) { throw "E2E server missing server.fleet_secret (config API + config.json)" }
|
||||
Remove-Item Env:AETHERFORGE_FLEET_SECRET -ErrorAction SilentlyContinue
|
||||
Remove-Item Env:AETHERFORGE_URL -ErrorAction SilentlyContinue
|
||||
Push-Location (Join-Path $Root "server\web")
|
||||
$env:AETHERFORGE_URL = "http://127.0.0.1:18989"
|
||||
$env:AETHERFORGE_FLEET_SECRET = $fleetSecret
|
||||
|
||||
@@ -20,8 +20,10 @@ export function e2eAuthHeaders(): Record<string, string> {
|
||||
* Prefer AETHERFORGE_FLEET_SECRET (test-suite.ps1 seeds from data/config.json).
|
||||
*/
|
||||
export async function fetchFleetSecret(request: APIRequestContext): Promise<string> {
|
||||
const fromEnv = process.env.AETHERFORGE_FLEET_SECRET?.trim();
|
||||
if (fromEnv) return fromEnv;
|
||||
if (process.env.AETHERFORGE_E2E !== '1') {
|
||||
const fromEnv = process.env.AETHERFORGE_FLEET_SECRET?.trim();
|
||||
if (fromEnv) return fromEnv;
|
||||
}
|
||||
|
||||
const res = await request.get('/api/v1/config', {
|
||||
headers: e2eAuthHeaders(),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# AetherForge Test Suite
|
||||
|
||||
**Current Vitest:** 734 tests in 87 files (`cd server/web && npm run test -- --run`). Full suite: `test.bat` → `scripts/test-suite.ps1`.
|
||||
**Current Vitest:** 740 tests in 87 files (`cd server/web && npm run test -- --run`). Full suite: `test.bat` → `scripts/test-suite.ps1`.
|
||||
|
||||
One command runs everything:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user