Add AI company research workbench backed by the shared site database
Verify and deploy Tabularium / verify-and-deploy (pull_request) Failing after 5m57s

This commit is contained in:
2026-10-30 03:25:38 +08:00
parent 074881b650
commit 1250b674b0
18 changed files with 3994 additions and 13 deletions
+16 -1
View File
@@ -160,7 +160,7 @@ async function main() {
path,
);
}
for (const path of ["/api/private", "/api/unknown", "/api/search"])
for (const path of ["/api/private", "/api/unknown", "/api/search", "/api/research/ai-companies"])
assert.equal((await request(path)).status, 401, path);
assert.equal(
(
@@ -181,6 +181,21 @@ async function main() {
const headers = {
Authorization: "Bearer " + signSession(config, undefined, 600),
};
const researchResponse = await request("/api/research/ai-companies", { headers });
assert.equal(researchResponse.status, 200, "authenticated research API");
assert.ok(researchResponse.headers.get("cache-control")?.includes("no-store"));
const research = await researchResponse.json();
assert.equal(research.companies.length, 54);
assert.equal(research.categories.length, 10);
assert.equal(research.evidence.length, 87);
assert.equal(research.observations.length, 63);
assert.equal((await request("/api/research/ai-companies", { method: "POST", headers })).status, 405);
const researchPage = await request("/docs/other-research/ai-company-research/overview", { headers });
assert.equal(researchPage.status, 200);
const researchHtml = await researchPage.text();
assert.ok(researchHtml.includes('data-category="其他研究"'));
assert.ok(researchHtml.includes("AI 公司研究"));
assert.ok(researchHtml.includes("正在读取研究数据库"));
const searchResponse = await request("/api/search", { headers });
assert.equal(searchResponse.status, 200);
const searchIndex = await searchResponse.json();