arm-core/web/src/auth/devIssuer.ts
Andrey Epifancev d065fc31dd fix(web): обратный поток из контура — vitest 3.1.4, форма dev-входа в любой сборке (#92)
- vitest зафиксирован точно на 3.1.4: в зеркале npm банка нет 3.2.x, lock-файл не в git,
  каретка давала бы разные версии снаружи и внутри контура;
- DevLogin больше не выбирает форму по NODE_ENV: платформа всегда собирает фронт в production,
  а контур работает на dev-заглушке аутентификации, переменные сборки в пайплайне задать нельзя.
  Форма входа по email показывается всегда; заглушка «Вход выполняется через РАИСА» — только после
  404 «Not Found» от бэкенда (маршрута /dev/token нет → dev-эмитент выключен). Признак вынесен
  в isDevIssuerDisabled и покрыт тестами: 404 «пользователь не найден» остаётся ошибкой в форме.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 20:29:39 +04:00

11 lines
802 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { ApiError } from '../api/client';
/**
* Маршрут `POST /dev/token` существует только при `DEBUG=true` и `AUTH_DEV_ISSUER=true` на бэкенде; иначе приложение
* отвечает 404 со строкой «Not Found» (а не доменной ошибкой с кодом). Это и есть признак «dev-эмитент выключен,
* вход только через SSO». 404 «пользователь не найден или отключён» приходит с того же статуса, но от самого маршрута.
*/
export function isDevIssuerDisabled(error: unknown): boolean {
return error instanceof ApiError && error.status === 404 && error.code === undefined && error.message === 'Not Found';
}