Add WalletConnect stub, track surfaces, legacy SPA retirement, and dual-domain checks.
Publish walletconnect config endpoints, Track 3/4 notes on analytics/operator pages, legacy SPA at /legacy/index.html with root redirect, and a parity verifier for explorer.d-bis.org vs blockscout.defi-oracle.io. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -35,6 +35,7 @@ STATIC_SYNC_FILES=(
|
||||
"favicon.ico"
|
||||
"apple-touch-icon.png"
|
||||
"explorer-spa.js"
|
||||
"legacy/index.html"
|
||||
)
|
||||
|
||||
cleanup() {
|
||||
|
||||
@@ -50,4 +50,22 @@ test.describe('Explorer sprint smoke', () => {
|
||||
await expect(page.getByRole('contentinfo').getByText(/Public APIs/i)).toBeVisible({ timeout: 10000 })
|
||||
await expect(page.getByRole('contentinfo').getByRole('link', { name: /Blockscout stats/i })).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('analytics page shows track 3 surface note', async ({ page }) => {
|
||||
await page.goto(`${EXPLORER_URL}/analytics`, { waitUntil: 'domcontentloaded', timeout: 30000 })
|
||||
await expect(page.getByRole('heading', { name: /Analytics & Network Activity/i })).toBeVisible({ timeout: 15000 })
|
||||
await expect(page.getByText(/Track 3 public surface/i).first()).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('operator page shows track 4 surface note', async ({ page }) => {
|
||||
await page.goto(`${EXPLORER_URL}/operator`, { waitUntil: 'domcontentloaded', timeout: 30000 })
|
||||
await expect(page.getByRole('heading', { name: /^Operator Surface$/i })).toBeVisible({ timeout: 15000 })
|
||||
await expect(page.getByText(/Track 4 public surface/i).first()).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('legacy SPA fallback loads', async ({ page }) => {
|
||||
await page.goto(`${EXPLORER_URL}/legacy/index.html`, { waitUntil: 'domcontentloaded', timeout: 30000 })
|
||||
await expect(page).toHaveTitle(/DBIS Explorer/i)
|
||||
await expect(page.getByRole('heading', { name: /Latest Blocks/i })).toBeVisible({ timeout: 15000 })
|
||||
})
|
||||
})
|
||||
|
||||
49
scripts/verify/check-explorer-dual-domain-parity.sh
Executable file
49
scripts/verify/check-explorer-dual-domain-parity.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
PRIMARY_DOMAIN="${PRIMARY_DOMAIN:-https://explorer.d-bis.org}"
|
||||
COMPANION_DOMAIN="${COMPANION_DOMAIN:-https://blockscout.defi-oracle.io}"
|
||||
|
||||
paths=(
|
||||
"/"
|
||||
"/wallet"
|
||||
"/operations"
|
||||
"/bridge"
|
||||
"/api/v2/stats"
|
||||
"/explorer-api/v1/track1/bridge/status"
|
||||
"/token-aggregation/api/v1/routes/matrix?includeNonLive=true"
|
||||
"/explorer-api/v1/walletconnect/config"
|
||||
)
|
||||
|
||||
failures=0
|
||||
|
||||
check_path() {
|
||||
local domain="$1"
|
||||
local path="$2"
|
||||
local code
|
||||
code="$(curl -ksS -o /dev/null -w '%{http_code}' --max-time 20 "${domain}${path}")"
|
||||
if [[ "$code" =~ ^(200|301|302|307|308)$ ]]; then
|
||||
printf 'OK %3s %s%s\n' "$code" "$domain" "$path"
|
||||
else
|
||||
printf 'FAIL %3s %s%s\n' "$code" "$domain" "$path"
|
||||
failures=$((failures + 1))
|
||||
fi
|
||||
}
|
||||
|
||||
echo "Checking explorer dual-domain parity"
|
||||
echo "Primary: $PRIMARY_DOMAIN"
|
||||
echo "Companion: $COMPANION_DOMAIN"
|
||||
echo
|
||||
|
||||
for path in "${paths[@]}"; do
|
||||
check_path "$PRIMARY_DOMAIN" "$path"
|
||||
check_path "$COMPANION_DOMAIN" "$path"
|
||||
done
|
||||
|
||||
echo
|
||||
if (( failures > 0 )); then
|
||||
echo "Dual-domain parity check failed ($failures mismatches/non-200)." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Dual-domain parity check passed."
|
||||
Reference in New Issue
Block a user