From 13dcd413f8c6fd00f6888411349f6833b857275d Mon Sep 17 00:00:00 2001 From: "h.matsuo" Date: Tue, 15 Mar 2022 18:01:58 +0900 Subject: [PATCH] =?UTF-8?q?E2E=20=E6=A8=A9=E9=99=90=E7=AE=A1=E7=90=86=5F?= =?UTF-8?q?=E7=99=BB=E9=8C=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Page/Admin/SystemMemberEditPage.php | 83 +++++++++++++++++++ codeception/acceptance/EA08SysteminfoCest.php | 60 +++++++++++++- 2 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 codeception/_support/Page/Admin/SystemMemberEditPage.php diff --git a/codeception/_support/Page/Admin/SystemMemberEditPage.php b/codeception/_support/Page/Admin/SystemMemberEditPage.php new file mode 100644 index 00000000000..961c901bece --- /dev/null +++ b/codeception/_support/Page/Admin/SystemMemberEditPage.php @@ -0,0 +1,83 @@ +goPage('/setting/system/member/new', 'メンバー登録システム設定'); + } + + /** + * @param \AcceptanceTester $I + */ + public static function at($I) + { + $page = new self($I); + $page->atPage('メンバー登録システム設定'); + + return $page; + } + + public function メンバー登録($form) + { + $form += [ + 'name' => 'name', + 'department' => 'department', + 'login_id' => 'id', + 'password' => 'password', + 'password_second' => 'password', + 'authority' => 'システム管理者', + 'work' => 1, + ]; + + $this->tester->fillField('#admin_member_name', $form['name']); + $this->tester->fillField('#admin_member_department', $form['department']); + $this->tester->fillField('#admin_member_login_id', $form['login_id']); + $this->tester->fillField('#admin_member_plain_password_first', $form['password']); + $this->tester->fillField('#admin_member_plain_password_second', $form['password_second']); + $this->tester->selectOption('#admin_member_Authority', $form['authority']); + $this->tester->selectOption('input[name="admin_member[Work]"]', $form['work']); + + return $this; + } + + public function 入力_パスワード($password, $password_second) + { + $this->tester->fillField('#admin_member_plain_password_first', $password); + $this->tester->fillField('#admin_member_plain_password_second', $password_second); + + return $this; + } + + public function 入力_稼働($value) + { + $this->tester->selectOption('input[name="admin_member[Work]"]', $value); + + return $this; + } + + public function 登録() + { + $this->tester->click('.c-conversionArea .btn-ec-conversion'); + + return $this; + } +} diff --git a/codeception/acceptance/EA08SysteminfoCest.php b/codeception/acceptance/EA08SysteminfoCest.php index 47456040b4e..72253873fc0 100644 --- a/codeception/acceptance/EA08SysteminfoCest.php +++ b/codeception/acceptance/EA08SysteminfoCest.php @@ -14,6 +14,7 @@ use Codeception\Util\Fixtures; use Page\Admin\AuthorityManagePage; use Page\Admin\LoginHistoryPage; +use Page\Admin\SystemMemberEditPage; /** * @group admin @@ -352,6 +353,63 @@ public function systeminfo_セキュリティ管理IP制限_拒否リスト(Acce $I->see('保存しました', AuthorityManagePage::$完了メッセージ); } + /** + * @group vaddy + */ + public function systeminfo_権限管理登録(AcceptanceTester $I) + { + // 店舗オーナーアカウントを作成 + $page = SystemMemberEditPage::go_new($I) + ->メンバー登録([ + 'login_id' => 'shop_owner', + 'authority' => '店舗オーナー', + ]) + ->登録(); + + $I->wantTo('EA0805-UC01-T01 権限管理 - 登録'); + + // 設定を追加 + AuthorityManagePage::go($I) + ->行追加() + ->入力(1, ['1' => '店舗オーナー'], '/setting') + ->登録(); + $I->see('保存しました', AuthorityManagePage::$完了メッセージ); + + $I->wantTo('EA0805-UC01-T02 権限管理 - 登録'); + + // 店舗オーナーでログインし、ナビに表示されないことを確認 + $I->logoutAsAdmin(); + $I->loginAsAdmin('shop_owner', 'password'); + $I->click(['css' => 'a[href="#nav-setting"]']); + $I->wait(1); + $I->dontSee('システム設定', '#nav-setting'); + + // URL直でもアクセスできないことを確認 + $config = Fixtures::get('config'); + $I->amOnPage("/${config['eccube_admin_route']}/setting/system/member"); + $I->seeInTitle('アクセスできません'); + + // 設定を削除 + $I->amOnPage("/{$config['eccube_admin_route']}/logout"); + $I->loginAsAdmin(); + + AuthorityManagePage::go($I) + ->行削除(1) + ->登録(); + $I->see('保存しました', AuthorityManagePage::$完了メッセージ); + + // 店舗オーナーアカウントでアクセスできることを確認 + $I->logoutAsAdmin(); + $I->loginAsAdmin('shop_owner', 'password'); + + $I->click(['css' => 'a[href="#nav-setting"]']); + $I->wait(1); + $I->see('システム設定', '#nav-setting'); + + $I->amOnPage("/${config['eccube_admin_route']}/setting/system/member"); + $I->seeInTitle('メンバー管理'); + } + /** * @group vaddy */ @@ -416,7 +474,7 @@ public function systeminfo_ログ表示(AcceptanceTester $I) $I->click(['css' => '#form1 button']); $logs = $I->grabTextFrom('.c-contentsArea textarea'); - $I->assertLessThanOrEqual(10, count(explode("\n", $logs)), "ログ件数を確認"); + $I->assertLessThanOrEqual(10, count(explode("\n", $logs)), 'ログ件数を確認'); $I->seeInField(['id' => 'admin_system_log_line_max'], '10'); }