# encoding: utf-8
# language: ja

@login
@user
@tenants
機能: 運営管理者によるテナント作成
  保管サービスを利用することになり、顧客記入した申請用紙を基に運営管理者が
  テナントを作成する

  シナリオ: 1 ログイン画面へのアクセス
    前提 '/public/users/sign_in' にアクセス
    ならば ログインフォームが表示される
    かつ 現在のURLは '/public/users/sign_in' である

  シナリオ: 2 テナント指定なしでログイン画面のURLアクセス
    前提 テナント public にて
    ならば  '/users/sign_in' にアクセスするとルーティングエラーが発生する

  シナリオ: 3 ログインしてTOPページに遷移すること
    前提 テナント public にて
    かつ 認証済みユーザー(メールアドレス "default_user@mynumber.admin" , パスワード "admin0123" , 権限 "super_admin")を作成する
    かつ '/public/users/sign_in' にアクセス
    かつ 'default_user@mynumber.admin' / 'admin0123' でログイン
    ならば public へのログインが成功すること
    かつ システム管理 メニューが表示される
    かつ 運営管理用メニュー メニューが表示される

  シナリオ: 4 TOPページにてログアウトボタンを押下する
    前提 テナント public にて
    かつ 認証済みユーザー(メールアドレス "default_user@mynumber.admin" , パスワード "admin0123" , 権限 "super_admin")を作成する
    かつ ログインしている
    かつ '/public/portal/index' にアクセス
    かつ ログアウトリンクをクリック
    ならば ログインフォームが表示される
    かつ 'notice' メッセージ 'ログアウトしました。' が表示される
    かつ システム管理 メニューが表示されていない
    かつ 運営管理用メニュー メニューが表示されていない

  シナリオ: 6 ログアウト後、トップ画面にアクセス
    前提 テナント public にて
    かつ 認証済みユーザー(メールアドレス "default_user@mynumber.admin" , パスワード "admin0123" , 権限 "super_admin")を作成する
    かつ ログインしている
    かつ '/public/portal/index' にアクセス
    かつ ログアウトリンクをクリック
    かつ '/public/portal/index' にアクセス
    ならば 'error' メッセージ '正しいマイナンバー保管サービスのURLを入力してください。' が表示される
    かつ システム管理 メニューが表示されていない
    かつ 運営管理用メニュー メニューが表示されていない

  シナリオ: 7 ログインして、新規アカウントを作成する
    前提 テナント public にて
    かつ 認証済みユーザー(メールアドレス "default_user@mynumber.admin" , パスワード "admin0123" , 権限 "super_admin")を作成する
    かつ ログインしている
    かつ '/public/users' にアクセス
    かつ リンク 新規登録 をクリックする
    かつ 'user[name]' に 新規ユーザー をセット
    かつ 'user[email]' に "new_user@mynumber.com" をセット
    かつ 'user[sign_in_id]' に "new_user" をセット
    かつ 'user[password]' に "new12345" をセット
    かつ 'user[password_confirmation]' に "new12345" をセット
    かつ セレクトボックス 'user[role]' で "スーパーユーザー" を選択
    かつ 登録 ボタンをクリックする
    ならば 'notice' メッセージ 'アカウントを登録しました。' が表示される
    かつ 現在のURLは '/public/users' である

  シナリオ: 8 ログイン中のユーザーは削除できない
    前提 テナント public にて
    かつ 認証済みユーザー(メールアドレス "default_user@mynumber.admin" , パスワード "admin0123" , 権限 "super_admin")を作成する
    かつ ログインしている
    かつ '/public/users' にアクセス
    ならば ログイン中のユーザーの削除ボタンは表示されていない

  シナリオ: 10 テナントの作成,js: true
    前提 テナント public にて
    かつ 認証済みユーザー(メールアドレス "default_user@mynumber.admin" , パスワード "admin0123" , 権限 "super_admin")を作成する
    かつ Sidekiqがインライン実行される
    かつ メール送信履歴の削除
    かつ ログインしている
    かつ '/public/tenants' にアクセス
    かつ リンク 新規登録 をクリックする
    かつ 'tenant[name]' に dai1 をセット
    かつ 'tenant[company_name]' に 第一商事 をセット
    かつ 'tenant[user_email]' に 'dai1_admin@mynumber.user.jp' をセット
    かつ 'tenant[user_name]' に 山田太郎 をセット
    かつ 'tenant[password]' に pass1234 をセット
    かつ 'tenant[password_confirmation]' に pass1234 をセット
    かつ 登録 ボタンをクリックする
    ならば 'notice' メッセージ 'テナントを登録しました。準備が完了次第、設定したシステム管理者アカウントのメールアドレス宛にメールを送信します。' が表示される
    かつ テナント 'dai1' が作成されている
    かつ テナント新規利用開始メールが 'dai1_admin@mynumber.user.jp' に送信されている
    
