mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-17 04:12:17 +03:00
Validado numa worktree combinada com as 16 PRs desta leva sobre `release/v3.8.51`: typecheck:core limpo, check-file-size e check-changelog-integrity OK, complexity 2788/3218 e cognitive 1261/1437, ESLint 0 erros nos 152 arquivos alterados, 771 testes unitários focados, 49 de integração e a suíte vitest:ui completa (2149) verdes. O ponto que sustenta a PR é o `models.dev` virar overlay de preço em vez de fonte de catálogo. Um catálogo estático que sobrevive à conta já ter listado ids mais novos é o tipo de defeito que só aparece quando o modelo novo é justamente o que se quer usar. Nota de integração: `activeSyncedCatalog.ts` colidiu com o #12934 (união dos `customModels` do picker no catálogo de despacho). Como você extraiu o bloco original para `loadConnectionCatalog`, os dois se compõem: a união dos irmãos agy/antigravity primeiro, o `unionCustomModels` por cima. Revalidei com `custom-models-live-catalog-12597`, `live-model-catalog-reconciliation-8926`, `sync-models-degraded-cached-catalog-9683`, `models-dev-catalog-read-gate`, `discovery-class`, `reactive-model-sync` e `l1-oauth-autosync-default` juntos — 48/48 — mais typecheck:core limpo. Sobre o `autoSync` padrão em Claude/Codex/Copilot com scheduler de 6h: passei isso pelo dono antes de mergear e a decisão foi manter como está.
35 lines
1.7 KiB
TypeScript
35 lines
1.7 KiB
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { claude } from "../../src/lib/oauth/providers/claude.ts";
|
|
import { codex } from "../../src/lib/oauth/providers/codex.ts";
|
|
import { github } from "../../src/lib/oauth/providers/github.ts";
|
|
import { gheCopilot } from "../../src/lib/oauth/providers/ghe-copilot.ts";
|
|
import { cursor } from "../../src/lib/oauth/providers/cursor.ts";
|
|
|
|
test("test 8: new OAuth mapTokens set autoSync true for L1 four", () => {
|
|
const tokens = { access_token: "t", refresh_token: "r", expires_in: 3600, scope: "s" };
|
|
assert.equal(claude.mapTokens(tokens, null).providerSpecificData.autoSync, true);
|
|
assert.equal(codex.mapTokens(tokens, {}).providerSpecificData.autoSync, true);
|
|
assert.equal(github.mapTokens(tokens, {}).providerSpecificData.autoSync, true);
|
|
assert.equal(gheCopilot.mapTokens(tokens, {}).providerSpecificData.autoSync, true);
|
|
});
|
|
|
|
test("test 8: Claude mapTokens always emits providerSpecificData.autoSync even if bootstrap is empty", () => {
|
|
const tokens = { access_token: "t", refresh_token: "r", expires_in: 3600, scope: "s" };
|
|
const mapped = claude.mapTokens(tokens, null);
|
|
assert.equal(mapped.providerSpecificData != null, true);
|
|
assert.equal(mapped.providerSpecificData.autoSync, true);
|
|
});
|
|
|
|
test("test 8: cursor / grok-cli mapTokens stay without autoSync default", () => {
|
|
const mapped = cursor.mapTokens({ accessToken: "t" });
|
|
assert.equal(mapped.providerSpecificData.autoSync, undefined);
|
|
const grokSrc = fs.readFileSync(
|
|
path.join(process.cwd(), "src/lib/oauth/providers/grok-cli.ts"),
|
|
"utf8",
|
|
);
|
|
assert.doesNotMatch(grokSrc, /autoSync:\s*true/);
|
|
});
|