9router/tests/unit
Simon Shi 69bc71cf11 refactor(qoder): mirror Kiro's OAuth service layout
Move device-flow / poll / userinfo / parseExpiry from src/lib/qoder/auth.js
into a QoderService class at src/lib/oauth/services/qoder.js, matching how
KiroService is organized. Also re-add the QoderService re-export from
services/index.js.

The split now mirrors Kiro:
  src/lib/oauth/services/qoder.js    OAuth flow            (was auth.js)
  src/lib/qoder/cosy.js              Per-request signing   (unchanged)
  src/lib/qoder/encoding.js          WAF-bypass body       (unchanged)
  src/lib/qoder/constants.js         Endpoints + model map (unchanged)

Behavior is unchanged — same functions, same signatures, just relocated
into a class so the import path lines up with `import { QoderService } from
"@/lib/oauth/services"` like every other OAuth provider. parseExpiry is now
a static method so callers and tests can use it without instantiating.

42 tests still pass; build still clean.
2026-05-29 17:36:27 +07:00
..
antigravity-cache.test.js Add marked package, update Qwen executor for OAuth handling, and enhance changelog styles 2026-04-17 12:15:10 +07:00
buildOutputFilter.test.js chore: add buildOutput RTK filter, drop legacy cloud sync, internal cleanup 2026-05-16 10:54:41 +07:00
buildOutputFilterAdversarial.test.js chore: add buildOutput RTK filter, drop legacy cloud sync, internal cleanup 2026-05-16 10:54:41 +07:00
claude-header-forwarding.test.js feat(claude-code): spoof TLS fingerprint and stabilize headers for Anthropic 2026-03-30 16:27:28 +07:00
codex-image-fetch.test.js fix(codex): await image URL fetches before sending to upstream (closes #575) 2026-04-17 12:15:10 +07:00
codex-refresh-token.test.js Add proactive token refresh lead times for providers and implement Codex proxy management 2026-04-14 11:41:06 +07:00
combo-routing.test.js Add sticky round-robin for combos (#831) 2026-05-01 16:36:36 +07:00
commandcode-to-openai.test.js feat: enhance CommandCode integration with improved message handling 2026-05-07 23:02:07 +07:00
compatible-provider-connections.test.js Fix compatible provider API key setup (#925) 2026-05-07 16:17:03 +07:00
cursor-composer-thinking.test.js fix: decode Composer cursor thinking output (#1310) 2026-05-21 09:52:30 +07:00
dashboard-guard.test.js Enhance security 2026-05-21 11:33:18 +07:00
db-benchmark.test.js feat(db): migrate from lowdb to SQLite with repos pattern 2026-05-09 17:48:20 +07:00
db-concurrent.test.js feat(db): migrate from lowdb to SQLite with repos pattern 2026-05-09 17:48:20 +07:00
db-driver-chain.test.js chore: release v0.4.27 2026-05-09 22:48:07 +07:00
db-migration-chain.test.js feat(db): migrate from lowdb to SQLite with repos pattern 2026-05-09 17:48:20 +07:00
db-sqlite-vs-lowdb.test.js feat(db): migrate from lowdb to SQLite with repos pattern 2026-05-09 17:48:20 +07:00
embeddings.cloud.test.js feat: add /v1/embeddings endpoint (OpenAI-compatible) (#146) 2026-02-18 13:24:02 +07:00
embeddingsCore.test.js fix(embeddings): forward Gemini output dimensions (#1366) 2026-05-23 09:23:26 +07:00
gemini-usage-projectid.test.js Reuse Gemini CLI project ID for usage (#1428) 2026-05-26 11:23:47 +07:00
github-responses-routing.test.js fix: never route GitHub Copilot Gemini/Claude models to /responses (#1062) (#1536) 2026-05-29 15:40:42 +07:00
image-generation.test.js Add Codex GPT 5.5 image support (#991) 2026-05-12 09:26:13 +07:00
minimax-tts.test.js feat: add minimax tts support (#1043) 2026-05-13 15:34:10 +07:00
minimax-usage.test.js feat: add minimax tts support (#1043) 2026-05-13 15:34:10 +07:00
minimax-voices.test.js feat: add minimax tts support (#1043) 2026-05-13 15:34:10 +07:00
oauth-cursor-auto-import.test.js fix: improve cursor auto-import reliability on macOS (#161) 2026-02-20 15:07:43 +07:00
openai-to-claude-response-tools.test.js fix: sanitize Read tool args to prevent retry loops from non-Anthropic models (#1144) 2026-05-26 11:33:38 +07:00
openai-to-claude.test.js fix: strip empty Read pages argument in OpenAI-to-Claude translator (#1354) 2026-05-23 09:27:13 +07:00
openai-to-commandcode.test.js feat: enhance CommandCode integration with improved message handling 2026-05-07 23:02:07 +07:00
openai-to-kiro.test.js https://github.com/decolua/9router/pull/1167 2026-05-16 11:20:08 +07:00
perplexity-web.test.js feat: add support for Grok Web and Perplexity Web providers 2026-04-22 11:58:53 +07:00
provider-validation.test.js Add optional modelID input for custom API Key Providers testing (#315) 2026-03-16 09:21:05 +07:00
qoder.test.js refactor(qoder): mirror Kiro's OAuth service layout 2026-05-29 17:36:27 +07:00
rtk.e2e.test.js Feature : RTK compress 2026-04-22 15:36:51 +07:00
rtk.multi-provider.e2e.test.js Feature : RTK compress 2026-04-22 15:36:51 +07:00
rtk.test.js Feature : RTK compress 2026-04-22 15:36:51 +07:00
rtkKiro.test.js feat(rtk): add Kiro format support for tool result compression (#1194) 2026-05-17 15:13:37 +07:00
translator-request-normalization.test.js fix: strip output_config for MiniMax (#820) 2026-05-01 16:16:01 +07:00
web-cookie-validation.test.js feat: add support for Grok Web and Perplexity Web providers 2026-04-22 11:58:53 +07:00
xai-oauth-service.test.js feat(xai): add xAI Grok provider with OAuth + API key auth + image 2026-05-21 11:33:18 +07:00
xai-tokenRefresh.test.js feat(xai): add xAI Grok provider with OAuth + API key auth + image 2026-05-21 11:33:18 +07:00