Spec
MODIFIED Requirements¶
Requirement: スクリプトの -EnvFile パラメーター¶
全メインスクリプト(clear-data, deploy-static-files, new-sas-token, show-urls)は --env-file CLIオプションを受け付けなければならない(SHALL)。このオプションにより、使用する .env ファイルのパスを指定できる。未指定時はプロジェクトルートの .env をデフォルトとして使用する。
Scenario: --env-file 未指定時のデフォルト動作¶
- WHEN
--env-fileを指定せずにスクリプトを実行する - THEN プロジェクトルートの
.envファイルが読み込まれる
Scenario: --env-file で相対パスを指定¶
- WHEN
--env-file .env.stagingのように相対パスを指定してスクリプトを実行する - THEN プロジェクトルート基準で解決されたパスの
.envファイルが読み込まれる
Scenario: --env-file で絶対パスを指定¶
- WHEN
--env-file /path/to/.env.prodのように絶対パスを指定してスクリプトを実行する - THEN 指定された絶対パスの
.envファイルが読み込まれる
Scenario: 指定された .env ファイルが存在しない場合¶
- WHEN
--env-fileで指定されたパス(またはデフォルトパス)に.envファイルが存在しない - THEN ファイルパスを含む明確なエラーメッセージと共にスクリプトが終了する
Requirement: Import-EnvParams 共通関数の提供¶
scripts/lib/env-settings.mjs は importEnvParams 関数をnamed exportとして提供しなければならない(SHALL)。この関数は .env ファイルの読み込み、全キーのオブジェクトとしての返却、.env.example に基づく必須キーの検証を一括で実行する。
Scenario: importEnvParams による .env キーのオブジェクト返却¶
- WHEN
importEnvParams(envFile)を呼び出す - THEN
.envの全キーがプロパティとして設定されたオブジェクトが返される(例:AZURE_SUBSCRIPTION_ID=xxx→env.AZURE_SUBSCRIPTION_IDが利用可能になる)
Scenario: .env.example に基づく必須キーの検証¶
- WHEN
.env.exampleに定義されたキーが.envに存在しない - THEN 不足しているキー名を含むエラーメッセージと共に例外がスローされる
Scenario: .env.example が存在しない場合¶
- WHEN プロジェクトルートに
.env.exampleが存在しない - THEN 必須キー検証はスキップされ、
.envの全キーがオブジェクトとして返される