chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
const { isApplyDisabled, isResetDisabled } = await import(
|
||||
"../../src/app/(dashboard)/dashboard/cli-code/components/codexButtonState.ts"
|
||||
);
|
||||
|
||||
test("Codex tool card — Apply / Reset disabled state", async (t) => {
|
||||
// ──────────────────────────── Apply ────────────────────────────
|
||||
|
||||
await t.test("Apply is disabled when no model is selected (regardless of key)", () => {
|
||||
assert.equal(
|
||||
isApplyDisabled({
|
||||
selectedModel: "",
|
||||
selectedApiKey: "key-1",
|
||||
cloudEnabled: true,
|
||||
apiKeys: ["key-1"],
|
||||
}),
|
||||
true,
|
||||
);
|
||||
assert.equal(
|
||||
isApplyDisabled({
|
||||
selectedModel: null,
|
||||
selectedApiKey: "",
|
||||
cloudEnabled: false,
|
||||
apiKeys: [],
|
||||
}),
|
||||
true,
|
||||
);
|
||||
});
|
||||
|
||||
await t.test(
|
||||
"Apply is ENABLED with model + no key when cloud is disabled (default sk_omniroute path)",
|
||||
() => {
|
||||
// This is the central case the upstream port fixes: in local-mode the
|
||||
// sk_omniroute default kicks in, so an empty selectedApiKey must not
|
||||
// disable Apply.
|
||||
assert.equal(
|
||||
isApplyDisabled({
|
||||
selectedModel: "gpt-5.5",
|
||||
selectedApiKey: "",
|
||||
cloudEnabled: false,
|
||||
apiKeys: ["key-1"], // even with keys configured, local mode wins
|
||||
}),
|
||||
false,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
await t.test("Apply is ENABLED with model + no key when no keys exist at all", () => {
|
||||
// Fresh install / cloud on but no keys created yet — the user should still
|
||||
// be able to apply with the default key.
|
||||
assert.equal(
|
||||
isApplyDisabled({
|
||||
selectedModel: "gpt-5.5",
|
||||
selectedApiKey: "",
|
||||
cloudEnabled: true,
|
||||
apiKeys: [],
|
||||
}),
|
||||
false,
|
||||
);
|
||||
});
|
||||
|
||||
await t.test(
|
||||
"Apply IS disabled when cloud is on AND keys exist AND none selected (user must pick one)",
|
||||
() => {
|
||||
assert.equal(
|
||||
isApplyDisabled({
|
||||
selectedModel: "gpt-5.5",
|
||||
selectedApiKey: "",
|
||||
cloudEnabled: true,
|
||||
apiKeys: ["key-1", "key-2"],
|
||||
}),
|
||||
true,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
await t.test("Apply is ENABLED when a model and a key are both selected", () => {
|
||||
assert.equal(
|
||||
isApplyDisabled({
|
||||
selectedModel: "gpt-5.5",
|
||||
selectedApiKey: "key-1",
|
||||
cloudEnabled: true,
|
||||
apiKeys: ["key-1"],
|
||||
}),
|
||||
false,
|
||||
);
|
||||
});
|
||||
|
||||
await t.test("Apply tolerates null/undefined apiKeys (treats as empty)", () => {
|
||||
assert.equal(
|
||||
isApplyDisabled({
|
||||
selectedModel: "gpt-5.5",
|
||||
selectedApiKey: "",
|
||||
cloudEnabled: true,
|
||||
apiKeys: null,
|
||||
}),
|
||||
false,
|
||||
);
|
||||
assert.equal(
|
||||
isApplyDisabled({
|
||||
selectedModel: "gpt-5.5",
|
||||
selectedApiKey: "",
|
||||
cloudEnabled: true,
|
||||
apiKeys: undefined,
|
||||
}),
|
||||
false,
|
||||
);
|
||||
});
|
||||
|
||||
// ──────────────────────────── Reset ────────────────────────────
|
||||
|
||||
await t.test("Reset is ENABLED by default when the CLI is installed", () => {
|
||||
// The card only renders this control in the installed branch, so the only
|
||||
// thing that should ever block it is an in-flight reset.
|
||||
assert.equal(isResetDisabled({ restoring: false }), false);
|
||||
});
|
||||
|
||||
await t.test("Reset is DISABLED only while the reset request is in flight", () => {
|
||||
assert.equal(isResetDisabled({ restoring: true }), true);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user