feat: import Chinese-localized Buzz source snapshot
Docker image / Build (linux/amd64) (push) Has been cancelled
Docker image / Build (linux/arm64) (push) Has been cancelled
Docker image / Merge release multi-arch manifest (push) Has been cancelled
Docker image / Merge debug multi-arch manifest (push) Has been cancelled
Docker image / Build public push gateway (linux/amd64) (push) Has been cancelled
Docker image / Build public push gateway (linux/arm64) (push) Has been cancelled
Docker image / Publish public push gateway image (push) Has been cancelled
Sprig image / Build (linux/amd64) (push) Has been cancelled
Sprig image / Build (linux/arm64) (push) Has been cancelled
Sprig image / Merge multi-arch manifest (push) Has been cancelled
Harbor Buzz Orchestra / Python tests and lint (push) Has been cancelled
CI / Detect Changed Paths (push) Has been cancelled
CI / Rust Lint (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Desktop Core (push) Has been cancelled
CI / Desktop Smoke E2E (1) (push) Has been cancelled
CI / Desktop Smoke E2E (2) (push) Has been cancelled
CI / Desktop Smoke E2E (3) (push) Has been cancelled
CI / Desktop Smoke E2E (4) (push) Has been cancelled
CI / Desktop (push) Has been cancelled
CI / Desktop E2E Relay (push) Has been cancelled
CI / Desktop E2E Integration (1/2) (push) Has been cancelled
CI / Desktop E2E Integration (2/2) (push) Has been cancelled
CI / Desktop E2E Integration (push) Has been cancelled
CI / Backend Integration (relay e2e) (push) Has been cancelled
CI / Relay E2E (push) Has been cancelled
CI / Web (push) Has been cancelled
CI / Mobile (push) Has been cancelled
CI / Security (push) Has been cancelled
CI / Dead Token Reference Guard (push) Has been cancelled
CI / Server Cross-Compile (aarch64-unknown-linux-musl) (push) Has been cancelled
CI / Server Cross-Compile (x86_64-unknown-linux-musl) (push) Has been cancelled
CI / Windows Rust (x86_64-pc-windows-msvc) (push) Has been cancelled
CI / Desktop Build (macOS) (push) Has been cancelled
helm chart / lint + unittest + render matrix (push) Has been cancelled
helm chart / install on kind (gated) (push) Has been cancelled
helm chart / publish chart to GHCR (push) Has been cancelled
Mesh Lifecycle / Relay-Driven Mesh Lifecycle Smoke (push) Has been cancelled
Sprig / Build (aarch64-unknown-linux-musl) (push) Has been cancelled
Sprig / Build (x86_64-unknown-linux-musl) (push) Has been cancelled
Sprig / Publish rolling release (push) Has been cancelled
Sprig / Publish tagged release (push) Has been cancelled
Docker image / Build (linux/amd64) (push) Has been cancelled
Docker image / Build (linux/arm64) (push) Has been cancelled
Docker image / Merge release multi-arch manifest (push) Has been cancelled
Docker image / Merge debug multi-arch manifest (push) Has been cancelled
Docker image / Build public push gateway (linux/amd64) (push) Has been cancelled
Docker image / Build public push gateway (linux/arm64) (push) Has been cancelled
Docker image / Publish public push gateway image (push) Has been cancelled
Sprig image / Build (linux/amd64) (push) Has been cancelled
Sprig image / Build (linux/arm64) (push) Has been cancelled
Sprig image / Merge multi-arch manifest (push) Has been cancelled
Harbor Buzz Orchestra / Python tests and lint (push) Has been cancelled
CI / Detect Changed Paths (push) Has been cancelled
CI / Rust Lint (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Desktop Core (push) Has been cancelled
CI / Desktop Smoke E2E (1) (push) Has been cancelled
CI / Desktop Smoke E2E (2) (push) Has been cancelled
CI / Desktop Smoke E2E (3) (push) Has been cancelled
CI / Desktop Smoke E2E (4) (push) Has been cancelled
CI / Desktop (push) Has been cancelled
CI / Desktop E2E Relay (push) Has been cancelled
CI / Desktop E2E Integration (1/2) (push) Has been cancelled
CI / Desktop E2E Integration (2/2) (push) Has been cancelled
CI / Desktop E2E Integration (push) Has been cancelled
CI / Backend Integration (relay e2e) (push) Has been cancelled
CI / Relay E2E (push) Has been cancelled
CI / Web (push) Has been cancelled
CI / Mobile (push) Has been cancelled
CI / Security (push) Has been cancelled
CI / Dead Token Reference Guard (push) Has been cancelled
CI / Server Cross-Compile (aarch64-unknown-linux-musl) (push) Has been cancelled
CI / Server Cross-Compile (x86_64-unknown-linux-musl) (push) Has been cancelled
CI / Windows Rust (x86_64-pc-windows-msvc) (push) Has been cancelled
CI / Desktop Build (macOS) (push) Has been cancelled
helm chart / lint + unittest + render matrix (push) Has been cancelled
helm chart / install on kind (gated) (push) Has been cancelled
helm chart / publish chart to GHCR (push) Has been cancelled
Mesh Lifecycle / Relay-Driven Mesh Lifecycle Smoke (push) Has been cancelled
Sprig / Build (aarch64-unknown-linux-musl) (push) Has been cancelled
Sprig / Build (x86_64-unknown-linux-musl) (push) Has been cancelled
Sprig / Publish rolling release (push) Has been cancelled
Sprig / Publish tagged release (push) Has been cancelled
Signed-off-by: cls_宁波本机 <908705107@qq.com>
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
import { request } from "@playwright/test";
|
||||
|
||||
const tylerPubkey =
|
||||
"e5ebc6cdb579be112e336cc319b5989b4bb6af11786ea90dbe52b5f08d741b34";
|
||||
const isCi = Boolean(process.env.CI);
|
||||
// Multi-tenant: the relay resolves each request's tenant from its Host header
|
||||
// against the communities host map and fails closed (404) on an unmapped host.
|
||||
// The seed maps host 'localhost:3000' (matching the relay's RELAY_URL) — and
|
||||
// `localhost` != `127.0.0.1` to normalize_host — so this readiness check must
|
||||
// hit `localhost:3000`, not `127.0.0.1:3000`, or every /query 404s. This also
|
||||
// matches the rest of the desktop e2e suite (e2eBridge.ts / bridge.ts), which
|
||||
// already default to localhost.
|
||||
const relayBaseUrl = process.env.BUZZ_E2E_RELAY_URL ?? "http://localhost:3000";
|
||||
const seedTimeoutMs = Number.parseInt(
|
||||
process.env.BUZZ_E2E_SEED_TIMEOUT_MS ?? (isCi ? "60000" : "25000"),
|
||||
10,
|
||||
);
|
||||
const requestTimeoutMs = Number.parseInt(
|
||||
process.env.BUZZ_E2E_SEED_REQUEST_TIMEOUT_MS ?? (isCi ? "5000" : "2000"),
|
||||
10,
|
||||
);
|
||||
const retryDelayMs = Number.parseInt(
|
||||
process.env.BUZZ_E2E_SEED_RETRY_DELAY_MS ?? "1000",
|
||||
10,
|
||||
);
|
||||
|
||||
function delay(ms: number) {
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(resolve, ms);
|
||||
});
|
||||
}
|
||||
|
||||
export async function assertRelaySeeded() {
|
||||
const context = await request.newContext();
|
||||
const deadline = Date.now() + seedTimeoutMs;
|
||||
let lastFailure = "no checks attempted";
|
||||
|
||||
try {
|
||||
while (Date.now() < deadline) {
|
||||
try {
|
||||
// The setup script inserts test data directly into the DB tables.
|
||||
// The relay reconciles these at startup by emitting kind:39000/39002
|
||||
// events. Query kind:39000 (channel metadata) via the HTTP bridge
|
||||
// and check for the expected "general" channel.
|
||||
const response = await context.post(`${relayBaseUrl}/query`, {
|
||||
headers: {
|
||||
"X-Pubkey": tylerPubkey,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
data: [{ kinds: [39000], limit: 200 }],
|
||||
timeout: requestTimeoutMs,
|
||||
});
|
||||
|
||||
if (!response.ok()) {
|
||||
lastFailure = `HTTP ${response.status()} from POST /query`;
|
||||
} else {
|
||||
const events = (await response.json()) as Array<{
|
||||
tags: string[][];
|
||||
}>;
|
||||
const hasGeneral = events.some((event) =>
|
||||
event.tags.some((tag) => tag[0] === "name" && tag[1] === "general"),
|
||||
);
|
||||
if (hasGeneral) {
|
||||
return;
|
||||
}
|
||||
lastFailure = `seed data: got ${events.length} channels but no "general" — relay may still be reconciling`;
|
||||
}
|
||||
} catch (error) {
|
||||
lastFailure =
|
||||
error instanceof Error ? error.message : "unknown relay check error";
|
||||
}
|
||||
|
||||
await delay(retryDelayMs);
|
||||
}
|
||||
|
||||
throw new Error(
|
||||
`Relay test data was not ready after ${seedTimeoutMs}ms. Last check: ${lastFailure}. Start the relay and run scripts/setup-desktop-test-data.sh.`,
|
||||
);
|
||||
} finally {
|
||||
await context.dispose();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user