Files
OmniRoute/tests/unit/kimi-combo-preset.test.ts
Diego Rodrigues de Sa e Souza f6d6ad6047 feat(dashboard): Kimi sponsor banner, Kimi Coding preset, official logomarks and partner links (#8039)
Official Kimi (Moonshot AI) partnership rollout on the dashboard: a
dismissible home-page sponsor banner (version-gated through v3.8.60), a
one-click "Kimi Coding" combo preset (kimi-k3 primary via moonshot,
fallback to kimi-coding/kimi-web), the official theme-aware logomark
wired into ProviderIcon and the README sponsors card, and aff-tagged
partner links (aff=omniroute) across the 3 visible Kimi provider cards'
top-of-page header link. The moonshot provider's dashboard display name
is rebranded to "Kimi" (id/alias/routing untouched — DB connections,
combos and /dashboard/providers/moonshot still address it by id).

Refs: Kimi partnership pilot.
2026-07-21 15:53:17 -03:00

51 lines
2.1 KiB
TypeScript

// Kimi Coding combo preset — pure data + gate logic.
// See src/app/(dashboard)/dashboard/combos/kimiComboPreset.ts.
import test from "node:test";
import assert from "node:assert/strict";
const kimiComboPreset = await import(
"../../src/app/(dashboard)/dashboard/combos/kimiComboPreset.ts"
);
const createComboSchema = (
await import("../../src/shared/validation/schemas/combo.ts")
).createComboSchema;
test("KIMI_CODING_PRESET_NAME is the exact combo name used everywhere (card gate, POST payload)", () => {
assert.equal(kimiComboPreset.KIMI_CODING_PRESET_NAME, "Kimi Coding");
assert.equal(kimiComboPreset.KIMI_CODING_PRESET.name, kimiComboPreset.KIMI_CODING_PRESET_NAME);
});
test("KIMI_CODING_PRESET uses priority strategy — kimi-k3 primary, kimi-coding/kimi-web fallback in order", () => {
const preset = kimiComboPreset.KIMI_CODING_PRESET;
assert.equal(preset.strategy, "priority");
assert.deepEqual(
preset.models.map((m) => [m.provider, m.model]),
[
["moonshot", "kimi-k3"],
["kimi-coding", "k3"],
["kimi-web", "k3"],
],
"moonshot/kimi-k3 must be first (priority strategy = array order = fallback order)"
);
for (const m of preset.models) {
assert.equal(typeof m.weight, "number");
}
});
test("KIMI_CODING_PRESET is a valid createComboSchema payload (would not 400 on POST /api/combos)", () => {
const result = createComboSchema.safeParse(kimiComboPreset.KIMI_CODING_PRESET);
assert.equal(result.success, true, result.success ? "" : JSON.stringify(result.error?.issues));
});
test("hasKimiCodingPreset detects an existing preset combo by name, case-sensitively", () => {
assert.equal(kimiComboPreset.hasKimiCodingPreset([]), false);
assert.equal(kimiComboPreset.hasKimiCodingPreset([{ name: "Some other combo" }]), false);
assert.equal(kimiComboPreset.hasKimiCodingPreset([{ name: "Kimi Coding" }]), true);
assert.equal(
kimiComboPreset.hasKimiCodingPreset([{ name: "foo" }, { name: "Kimi Coding" }, { name: "bar" }]),
true
);
assert.equal(kimiComboPreset.hasKimiCodingPreset([{ name: "kimi coding" }]), false);
assert.equal(kimiComboPreset.hasKimiCodingPreset([{ name: null }, {}]), false);
});