| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- const baseUrl = String(
- process.argv[2] || process.env.QIWEI_ONLINE_BASE || "https://server.fmode.cn",
- ).replace(/\/+$/, "");
- const authToken = String(process.env.QIWEI_AUTH_TOKEN || "").trim();
- const timeoutMs = 15_000;
- async function request(path, options = {}) {
- const controller = new AbortController();
- const timeout = setTimeout(() => controller.abort(), timeoutMs);
- try {
- const response = await fetch(`${baseUrl}${path}`, {
- ...options,
- headers: {
- Accept: "application/json",
- ...(authToken ? { Authorization: `Bearer ${authToken}` } : {}),
- ...(options.headers || {}),
- },
- signal: controller.signal,
- });
- const contentType = response.headers.get("content-type") || "";
- const text = await response.text();
- let body = null;
- if (contentType.includes("json")) {
- try {
- body = JSON.parse(text);
- } catch {
- body = null;
- }
- }
- return {
- path,
- status: response.status,
- contentType,
- bytes: Buffer.byteLength(text),
- code: body && typeof body === "object" ? body.code ?? null : null,
- };
- } finally {
- clearTimeout(timeout);
- }
- }
- function expect(name, result, statuses) {
- const ok = statuses.includes(result.status);
- console.log(JSON.stringify({ name, ...result, ok }));
- if (!ok) throw new Error(`${name} returned HTTP ${result.status}`);
- }
- const health = await request("/api/qiwei/health");
- expect("health", health, [200]);
- const test = await request("/api/qiwei/test");
- expect("test", test, [200]);
- const plans = await request("/api/qiwei/product/plans?seats=1&months=1");
- expect("plans", plans, [200]);
- if (authToken) {
- const trial = await request("/api/qiwei/trial/status");
- expect("trial-status", trial, [200]);
- const subscription = await request("/api/qiwei/subscribe/status?seats=1&months=1");
- expect("subscription-status", subscription, [200]);
- } else {
- const unauthenticated = await request("/api/qiwei/trial/status");
- expect("trial-status-without-auth", unauthenticated, [401, 403]);
- }
- console.log(JSON.stringify({ ok: true, baseUrl, authenticatedChecks: Boolean(authToken) }));
|