visionA 雲端版前端 — 沿用 local-tool 既有 UI(原則 4:先抄 local-tool)+
新增雲端特有的登入 / 配對 / 設定流程,含以下整合階段:
- Phase 0:13 頁 + 30+ 元件 + 雛形 banner
- dashboard / devices / models / workspace / clusters / settings 等頁
- AppShell + Sidebar + Header + tokens + i18n(中英雙語 96 keys)
- API client + 5 stores + 3 hooks
- Phase 0.6:OIDC redirect 改造
- login 頁改為 OIDC redirect(`window.location.href = /api/auth/login`)
- register 改說明頁、account 改唯讀(user 資料來源是 MC)
- api client 改 cookie session(credentials: include)+ 完全清掉 localStorage
- Phase 0.7:stage 部署 + nil guard
- getApiBaseUrl() 修:browser 環境視為 same-origin(與 login 頁一致)
- login 頁加「已登入 → router.replace('/')」effect
- User type email/name 改 optional(MC id_token 不一定回 email/name claim)
- header.tsx UserMenu displayName 4 層 fallback:name → email → id → i18n
- 雛形 banner 文案更新(已接 Innovedus 帳號中心)+ 版號 Phase 0.7
驗證:pnpm lint / test (125/125) / build 全綠
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
26 lines
672 B
TypeScript
26 lines
672 B
TypeScript
import { defineConfig } from "vitest/config";
|
||
import react from "@vitejs/plugin-react";
|
||
import path from "path";
|
||
|
||
/**
|
||
* Vitest 設定 — visionA Cloud 前端
|
||
*
|
||
* - environment: jsdom — 模擬瀏覽器環境
|
||
* - setupFiles: 預留給 @testing-library/jest-dom 等 matcher(F3 任務才會加)
|
||
* - alias "@" 對齊 tsconfig,測試檔案可沿用 import "@/..." 寫法
|
||
*/
|
||
export default defineConfig({
|
||
plugins: [react()],
|
||
test: {
|
||
environment: "jsdom",
|
||
globals: true,
|
||
setupFiles: ["./src/tests/setup.ts"],
|
||
include: ["src/**/*.{test,spec}.{ts,tsx}"],
|
||
},
|
||
resolve: {
|
||
alias: {
|
||
"@": path.resolve(__dirname, "./src"),
|
||
},
|
||
},
|
||
});
|