Spec
ADDED Requirements¶
Requirement: サイトタイトルを環境変数で設定できる¶
システムは、ビルド時の環境変数 VITE_APP_TITLE によってサイトタイトル(ブラウザタブの <title> タグおよびヘッダーのブランド名表示)を設定できるものとする(SHALL)。環境変数が未設定の場合、デフォルト値として「Teams Board」を使用しなければならない(MUST)。
Scenario: 環境変数でカスタムタイトルを設定した場合¶
- WHEN 環境変数
VITE_APP_TITLEに「カスタムタイトル」を設定してビルドする - THEN ブラウザタブのタイトルが「カスタムタイトル」と表示される
- THEN ヘッダーのブランド名が「カスタムタイトル」と表示される
Scenario: 環境変数が未設定の場合¶
- WHEN 環境変数
VITE_APP_TITLEを設定せずにビルドする - THEN ブラウザタブのタイトルが「Teams Board」と表示される
- THEN ヘッダーのブランド名が「Teams Board」と表示される
Requirement: デフォルト環境変数ファイルにサイトタイトルが定義されている¶
プロジェクトルートの .env ファイルに VITE_APP_TITLE=Teams Board がデフォルト値として定義されていなければならない(MUST)。これにより、環境変数を明示的に設定しなくても開発時・ビルド時に適切なタイトルが適用される。
Scenario: .envファイルによるデフォルト値の適用¶
- WHEN
.envファイルが存在しVITE_APP_TITLE=Teams Boardが定義されている - WHEN 追加の環境変数設定なしで
pnpm run devを実行する - THEN ヘッダーのブランド名が「Teams Board」と表示される
Scenario: .env.localで上書きする場合¶
- WHEN
.env.localファイルにVITE_APP_TITLE=MyDashboardを定義する - WHEN
pnpm run devを実行する - THEN ヘッダーのブランド名が「MyDashboard」と表示される
Requirement: ビルド成果物の HTML にサイトタイトルが埋め込まれる¶
ビルド成果物の index.html の <title> タグには、ビルド時点の VITE_APP_TITLE 環境変数の値が埋め込まれていなければならない(MUST)。JavaScript の実行を待たずに、HTML パース時点でブラウザタブに正しいタイトルが表示されるものとする(SHALL)。
Scenario: ビルド成果物に環境変数のタイトルが埋め込まれている場合¶
- WHEN 環境変数
VITE_APP_TITLEに「カスタムタイトル」を設定してビルドする - THEN ビルド成果物
dist/index.htmlの<title>タグの内容が「カスタムタイトル」である
Scenario: 環境変数が未設定でビルドした場合¶
- WHEN 環境変数
VITE_APP_TITLEを設定せずにビルドする - THEN ビルド成果物
dist/index.htmlの<title>タグの内容が「Teams Board」である
Scenario: 開発サーバーでもタイトルが反映される場合¶
- WHEN 環境変数
VITE_APP_TITLEに「開発用タイトル」を設定してpnpm run devを実行する - THEN ブラウザタブのタイトルが「開発用タイトル」と表示される
Requirement: ヘッダーのブランド名表示が動的に解決される¶
App.jsx のヘッダーコンポーネントは、ハードコードされた文字列ではなく import.meta.env.VITE_APP_TITLE を参照してブランド名を表示しなければならない(MUST)。フォールバック値として「Teams Board」を使用する(SHALL)。
Scenario: ヘッダーがimport.meta.envからタイトルを取得する¶
- WHEN アプリケーションが読み込まれる
- THEN ヘッダーのブランド名は
import.meta.env.VITE_APP_TITLEの値を表示する - THEN 値が空またはundefinedの場合は「Teams Board」を表示する