mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-05-19 08:01:17 +00:00
style: fix biome formatting in hetzner-cov test
Agent: refactor/test-engineer Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
ed303f2b88
commit
3e2c67cfe9
1 changed files with 34 additions and 35 deletions
|
|
@ -585,11 +585,11 @@ describe("hetzner/createServer", () => {
|
|||
},
|
||||
},
|
||||
};
|
||||
let callCount = 0;
|
||||
global.fetch = mock(() => {
|
||||
callCount++;
|
||||
if (callCount <= 1) {
|
||||
// Token validation
|
||||
let createAttempts = 0;
|
||||
global.fetch = mock((url: string | URL | Request) => {
|
||||
const urlStr = String(url instanceof Request ? url.url : url);
|
||||
// Token validation — GET /servers?per_page=1
|
||||
if (urlStr.includes("/servers") && urlStr.includes("per_page=1")) {
|
||||
return Promise.resolve(
|
||||
new Response(
|
||||
JSON.stringify({
|
||||
|
|
@ -598,8 +598,8 @@ describe("hetzner/createServer", () => {
|
|||
),
|
||||
);
|
||||
}
|
||||
if (callCount <= 2) {
|
||||
// SSH keys
|
||||
// SSH keys (paginated)
|
||||
if (urlStr.includes("/ssh_keys")) {
|
||||
return Promise.resolve(
|
||||
new Response(
|
||||
JSON.stringify({
|
||||
|
|
@ -608,24 +608,28 @@ describe("hetzner/createServer", () => {
|
|||
),
|
||||
);
|
||||
}
|
||||
if (callCount <= 3) {
|
||||
// First create attempt — resource_limit_exceeded (HTTP 403)
|
||||
return Promise.resolve(
|
||||
new Response(
|
||||
JSON.stringify({
|
||||
error: {
|
||||
code: "resource_limit_exceeded",
|
||||
message: "primary_ip_limit",
|
||||
// POST /servers — create attempt (matches /servers without query params)
|
||||
if (urlStr.endsWith("/servers")) {
|
||||
createAttempts++;
|
||||
if (createAttempts <= 1) {
|
||||
return Promise.resolve(
|
||||
new Response(
|
||||
JSON.stringify({
|
||||
error: {
|
||||
code: "resource_limit_exceeded",
|
||||
message: "primary_ip_limit",
|
||||
},
|
||||
}),
|
||||
{
|
||||
status: 403,
|
||||
},
|
||||
}),
|
||||
{
|
||||
status: 403,
|
||||
},
|
||||
),
|
||||
);
|
||||
),
|
||||
);
|
||||
}
|
||||
return Promise.resolve(new Response(JSON.stringify(serverResp)));
|
||||
}
|
||||
if (callCount <= 4) {
|
||||
// List primary IPs for cleanup
|
||||
// List primary IPs for cleanup
|
||||
if (urlStr.includes("/primary_ips")) {
|
||||
return Promise.resolve(
|
||||
new Response(
|
||||
JSON.stringify({
|
||||
|
|
@ -645,23 +649,18 @@ describe("hetzner/createServer", () => {
|
|||
),
|
||||
);
|
||||
}
|
||||
if (callCount <= 5) {
|
||||
// Delete orphaned IP 100
|
||||
return Promise.resolve(
|
||||
new Response("", {
|
||||
status: 204,
|
||||
}),
|
||||
);
|
||||
}
|
||||
// Retry create — success
|
||||
return Promise.resolve(new Response(JSON.stringify(serverResp)));
|
||||
// DELETE orphaned IP (or any other call)
|
||||
return Promise.resolve(
|
||||
new Response("", {
|
||||
status: 204,
|
||||
}),
|
||||
);
|
||||
});
|
||||
const { ensureHcloudToken, createServer } = await import("../hetzner/hetzner");
|
||||
await ensureHcloudToken();
|
||||
const conn = await createServer("test-retry", "cx23", "fsn1");
|
||||
expect(conn.ip).toBe("10.0.0.5");
|
||||
// Should have called: token(1), ssh_keys(2), create-fail(3), list-ips(4), delete-ip(5), create-ok(6)
|
||||
expect(callCount).toBeGreaterThanOrEqual(6);
|
||||
expect(createAttempts).toBe(2);
|
||||
});
|
||||
|
||||
it("throws with guidance when resource limit hit and no orphaned IPs to clean", async () => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue