Spec
ADDED Requirements¶
Requirement: 勉強会詳細ページの表示¶
システムは #/study-groups/:studyGroupId パスで勉強会詳細ページを表示しなければならない(SHALL)。ページにはヘッダーカード、セッション一覧、セッション内の参加者詳細が含まれる。
Scenario: 勉強会詳細ページの基本表示¶
- WHEN ユーザーが
#/study-groups/:studyGroupIdにアクセスする - THEN 勉強会のヘッダーカード(勉強会名、総開催回数、合計学習時間)が表示される
- THEN 開催されたセッションの一覧がサマリーカード形式で表示される
Scenario: 存在しない勉強会IDへのアクセス¶
- WHEN ユーザーが存在しない
studyGroupIdでアクセスする - THEN「勉強会が見つかりません」というエラーメッセージが表示される
- THEN 一覧へ戻るボタンが表示される
Requirement: セッション一覧の表示¶
システムは勉強会に属するセッションをサマリーカード形式で一覧表示しなければならない(SHALL)。セッションは日付降順でソートされる。
Scenario: セッションサマリーカードの表示¶
- WHEN 勉強会詳細ページが表示される
- THEN 各セッションのサマリーカードに日付、参加人数、合計学習時間が表示される
- THEN セッションは日付降順(最新が上)で表示される
Requirement: セッション参加者のアコーディオン展開¶
システムはセッションサマリーカードをクリックすると、そのセッションの参加者詳細をアコーディオン展開で表示しなければならない(SHALL)。
Scenario: セッションの展開¶
- WHEN ユーザーがセッションサマリーカードをクリックする
- THEN そのセッションの参加者一覧テーブル(名前、学習時間)がアコーディオン展開で表示される
Scenario: セッションの折りたたみ¶
- WHEN 展開済みのセッションサマリーカードをクリックする
- THEN 参加者一覧が折りたたまれる
Scenario: セッションが1件のみの場合のデフォルト展開¶
- WHEN 勉強会のセッションが1件のみである
- THEN そのセッションはデフォルトの展開状態で表示される
Requirement: 戻るボタンの表示¶
システムはページ上部に一覧へ戻るボタンを表示しなければならない(SHALL)。
Scenario: 戻るボタンの動作¶
- WHEN ユーザーが「一覧へ戻る」ボタンをクリックする
- THEN トップページ(ダッシュボード)へ遷移する
Requirement: ローディング状態の表示¶
システムはデータ取得中にローディング表示をしなければならない(SHALL)。
Scenario: データ取得中の表示¶
- WHEN 勉強会詳細ページのデータ取得中である
- THEN ローディングインジケーター(スピナー)と「読み込み中。..」テキストが表示される
Requirement: データ取得エラーの処理¶
システムはデータ取得に失敗した場合、エラーメッセージを表示しなければならない(SHALL)。
Scenario: データ取得エラー時の表示¶
- WHEN
index.jsonの取得に失敗する - THEN エラーメッセージが表示される
- THEN 一覧へ戻るボタンが表示される