Skip to content

Commit

Permalink
Merge pull request #17 from nanasess/okazy-feat-admin-multi-shipping
Browse files Browse the repository at this point in the history
正常系のテスト追加
  • Loading branch information
okazy authored Jul 23, 2018
2 parents 6659046 + b553d58 commit 48f8970
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 158 deletions.
8 changes: 8 additions & 0 deletions codeception/_support/Page/Admin/OrderEditPage.php
Original file line number Diff line number Diff line change
Expand Up @@ -171,4 +171,12 @@ public function acceptDeleteModal($row)
$this->tester->click("#table-form-field > tbody > tr:nth-child({$row}) > td.align-middle.text-right.pr-3 div.modal a.delete");
return $this;
}

public function お届け先の追加()
{
$this->tester->scrollTo(['css' => '#form1'], 0, 200);
$this->tester->wait(5);
$this->tester->click('#shipping-add');
return $this;
}
}
26 changes: 13 additions & 13 deletions codeception/_support/Page/Admin/ShippingEditPage.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
class ShippingEditPage extends AbstractAdminPageStyleGuide
{

public static $姓_エラーメッセージ = '#shippingerInfo > div > div:nth-child(2) > div.col > span > ul > p';
public static $姓_エラーメッセージ = '#shipmentOverview_0 > div > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div > div > div:nth-child(1) > span > span > span.form-error-message';

public static $登録完了メッセージ = '#page_admin_shipping_edit > div > div.c-contentsArea > div.alert.alert-success.alert-dismissible.fade.show.m-3 > span';

Expand Down Expand Up @@ -48,75 +48,75 @@ public function お届け先編集()

public function 入力_姓($value)
{
$this->tester->fillField(['id' => 'shipping_name_name01'], $value);
$this->tester->fillField(['id' => 'form_shippings_0_name_name01'], $value);
return $this;
}

public function 入力_名($value)
{
$this->tester->fillField(['id' => 'shipping_name_name02'], $value);
$this->tester->fillField(['id' => 'form_shippings_0_name_name02'], $value);
return $this;
}

public function 入力_セイ($value)
{
$this->tester->fillField(['id' => 'shipping_kana_kana01'], $value);
$this->tester->fillField(['id' => 'form_shippings_0_kana_kana01'], $value);
return $this;
}

public function 入力_メイ($value)
{
$this->tester->fillField(['id' => 'shipping_kana_kana02'], $value);
$this->tester->fillField(['id' => 'form_shippings_0_kana_kana02'], $value);
return $this;
}

public function 入力_郵便番号($value)
{
$this->tester->fillField(['id' => 'shipping_postal_code'], $value);
$this->tester->fillField(['id' => 'form_shippings_0_postal_code'], $value);

return $this;
}

public function 入力_都道府県($value)
{
$this->tester->selectOption(['id' => 'shipping_address_pref'], $value);
$this->tester->selectOption(['id' => 'form_shippings_0_address_pref'], $value);
return $this;
}

public function 入力_市区町村名($value)
{
$this->tester->fillField(['id' => 'shipping_address_addr01'], $value);
$this->tester->fillField(['id' => 'form_shippings_0_address_addr01'], $value);
return $this;
}

public function 入力_番地_ビル名($value)
{
$this->tester->fillField(['id' => 'shipping_address_addr02'], $value);
$this->tester->fillField(['id' => 'form_shippings_0_address_addr02'], $value);
return $this;
}

public function 入力_電話番号($value)
{
$this->tester->fillField(['id' => 'shipping_phone_number'], $value);
$this->tester->fillField(['id' => 'form_shippings_0_phone_number'], $value);

return $this;
}

public function 入力_出荷伝票番号($value)
{
$this->tester->fillField(['id' => 'shipping_tracking_number'], $value);
$this->tester->fillField(['id' => 'form_shippings_0_tracking_number'], $value);
return $this;
}

public function 入力_配送業者($value)
{
$this->tester->selectOption(['id' => 'shipping_Delivery'], $value);
$this->tester->selectOption(['id' => 'form_shippings_0_Delivery'], $value);
return $this;
}

public function 入力_配達用メモ($value)
{
$this->tester->fillField(['id' => 'shipping_note'], $value);
$this->tester->fillField(['id' => 'form_shippings_0_note'], $value);
return $this;
}

Expand Down
171 changes: 29 additions & 142 deletions codeception/acceptance/EA09ShippingCest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
use Eccube\Entity\Customer;
use Eccube\Entity\Order;
use Page\Admin\OrderEditPage;
use Page\Admin\OrderManagePage;
use Page\Admin\ShippingCsvUploadPage;
use Page\Admin\ShippingEditPage;
use Page\Admin\ShippingManagePage;
Expand All @@ -27,52 +28,45 @@ public function _after(\AcceptanceTester $I)
{
}

public function shipping出荷検索(\AcceptanceTester $I)
public function shipping出荷編集(\AcceptanceTester $I)
{
$I->getScenario()->incomplete('受注管理画面に統合');
$I->wantTo('EA0901-UC01-T01(& UC01-T02, UC01-T3) 出荷検索');
$I->wantTo('EA0901-UC03-T01(& UC03-T02) 出荷編集');

$TargetShippings = Fixtures::get('findShippings'); // Closure
$Shippings = $TargetShippings();
ShippingManagePage::go($I);
$I->see('検索結果 : '.count($Shippings).' 件が該当しました', ShippingManagePage::$検索結果_メッセージ);
// $I->getScenario()->skip('お届け日を編集時にJSが走らない問題がありskip');

ShippingManagePage::go($I)->検索('[email protected]');
$I->see('検索結果 : 0 件が該当しました', ShippingManagePage::$検索結果_メッセージ);
$I->resetEmails();

ShippingManagePage::go($I)->詳細検索_電話番号('あああ');
$I->see('検索条件に誤りがあります', ShippingManagePage::$検索結果_エラーメッセージ);
}
// 新規受付ステータスの受注を作る
$createCustomer = Fixtures::get('createCustomer');
$createOrders = Fixtures::get('createOrders');
$newOrders = $createOrders($createCustomer(), 1, array());

public function shipping出荷編集(\AcceptanceTester $I)
{
$I->getScenario()->incomplete('受注管理画面に統合');
$I->wantTo('EA0901-UC03-T01(& UC03-T02) 出荷編集');
$OrderListPage = OrderManagePage::go($I)->検索($newOrders[0]->getOrderNo());

$I->getScenario()->skip('お届け日を編集時にJSが走らない問題がありskip');
$I->see('検索結果:1件が該当しました', OrderManagePage::$検索結果_メッセージ);

/* 編集 */
$OrderListPage->一覧_編集(1);

$OrderRegisterPage = OrderEditPage::at($I)
->お届け先の追加();

$I->resetEmails();

$TargetShippings = Fixtures::get('findShippings'); // Closure
$Shippings = $TargetShippings();
$ShippingListPage = ShippingManagePage::go($I);
$I->see('検索結果 : '.count($Shippings).' 件が該当しました', ShippingManagePage::$検索結果_メッセージ);

/* 編集 */
$ShippingListPage->一覧_編集(1);

$ShippingRegisterPage = ShippingEditPage::at($I)
->お届け先編集()
// ->お届け先編集()
->入力_姓('')
->出荷情報登録();

/* 異常系 */
// FIXME お届け先編集が閉じてしまうため、エラーメッセージが表示されない
// $I->see('入力されていません。', ShippingEditPage::$姓_エラーメッセージ);
$I->see('入力されていません。', ShippingEditPage::$姓_エラーメッセージ);

/* 正常系 */
$ShippingRegisterPage
->お届け先編集()
// ->お届け先編集()
->入力_姓('aaa')
->入力_セイ('アアア')
->入力_メイ('アアア')
Expand All @@ -87,124 +81,17 @@ public function shipping出荷編集(\AcceptanceTester $I)
$I->see('出荷情報を登録しました。', ShippingEditPage::$登録完了メッセージ);

/* 出荷済みに変更 */
$ShippingRegisterPage
->入力_出荷日('2018-09-04')
->出荷情報登録()
->変更を確定();
$I->wait(1);
$I->see('出荷情報を登録しました。', ShippingEditPage::$登録完了メッセージ);

$I->wait(3);
$I->seeEmailCount(2);
}

public function shipping出荷削除(\AcceptanceTester $I)
{
$I->getScenario()->incomplete('受注管理画面に統合');
$I->wantTo('EA0901-UC04-T01(& UC04-T02) 出荷削除');

$TargetShippings = Fixtures::get('findShippings'); // Closure
$Shippings = $TargetShippings();
$ShippingListPage = ShippingManagePage::go($I);
$I->see('検索結果 : '.count($Shippings).' 件が該当しました', ShippingManagePage::$検索結果_メッセージ);

// 削除
$ShippingListPage->一覧_チェックボックス(1);
$ShippingListPage->一覧_削除();

$I->waitForElementVisible(['xpath' => '//*[@id="page_admin_shipping"]/div[1]/div[3]/div[2]/span']);
$I->see('出荷情報を削除しました。', ['xpath' => '//*[@id="page_admin_shipping"]/div[1]/div[3]/div[2]/span']);

// 削除キャンセル
$ShippingListPage->一覧_チェックボックス(1);
$ShippingListPage->一覧_削除キャンセル();
// $ShippingRegisterPage
// // ->入力_出荷日('2018-09-04')
// ->出荷情報登録()
// ->変更を確定();
// $I->wait(1);
// $I->see('出荷情報を登録しました。', ShippingEditPage::$登録完了メッセージ);

// $I->wait(3);
// $I->seeEmailCount(2);
}

public function shipping一括発送済み更新(\AcceptanceTester $I)
{
$I->getScenario()->incomplete('受注管理画面に統合');
$I->wantTo('EA0902-UC01-T01 一括発送済み更新');

// 一括操作用の受注を生成しておく
$createCustomer = Fixtures::get('createCustomer');
$createOrders = Fixtures::get('createOrders');
$createOrders($createCustomer(), 10, array());

$I->resetEmails();

$config = Fixtures::get('config');
// 未出荷にリセット
$resetShippingDate = Fixtures::get('resetShippingDate'); // Closure
$resetShippingDate();

$TargetShippings = Fixtures::get('findShippings'); // Closure
$Shippings = $TargetShippings();
$ShippingListPage = ShippingManagePage::go($I);
$I->see('検索結果 : '.count($Shippings).' 件が該当しました', ShippingManagePage::$検索結果_メッセージ);

$ShippingListPage
->一覧_全選択()
->一括発送済み更新();

$I->wait(5);
$I->waitForElementVisible(['xpath' => '//*[@id="sentUpdateModal"]/div/div/div[2]/p']);
$I->see('処理完了。10件のメールを送信しました', ['xpath' => '//*[@id="sentUpdateModal"]/div/div/div[2]/p']);
$I->seeEmailCount(20);

$I->click(['id' => 'bulkChangeComplete']);
}

public function shipping出荷登録(\AcceptanceTester $I)
{
$I->getScenario()->incomplete('受注管理画面に統合');
$I->wantTo('EA0903-UC01-T01(& UC01-T02) 出荷登録');

$OrderRegisterPage = OrderEditPage::go($I)->受注情報登録();

/* 正常系 */
$OrderRegisterPage
->入力_受注ステータス(['1' => '新規受付'])
->入力_姓('order1')
->入力_名('order1')
->入力_セイ('アアア')
->入力_メイ('アアア')
->入力_郵便番号('060-0000')
->入力_都道府県(['1' => '北海道'])
->入力_市区町村名('bbb')
->入力_番地_ビル名('bbb')
->入力_Eメール('[email protected]')
->入力_電話番号('111-111-111')
->商品検索('パーコレーター')
->商品検索結果_選択(1)
->入力_支払方法(['4'=> '郵便振替'])
->受注情報登録();

$ShippingRegisterPage = ShippingEditPage::go($I)->出荷情報登録();

/* 異常系 */
$I->dontSee('出荷情報を保存しました。', ShippingEditPage::$登録完了メッセージ);


/* 正常系 */
$ShippingRegisterPage
->入力_姓('shipping1')
->入力_名('shipping1')
->入力_セイ('アアア')
->入力_メイ('アアア')
->入力_郵便番号('060-0000')
->入力_都道府県(['1' => '北海道'])
->入力_市区町村名('bbb')
->入力_番地_ビル名('bbb')
->入力_電話番号('111-111-111')
->入力_出荷伝票番号('1111-1111-1111')
->入力_配送業者([1 => 'サンプル業者'])
->入力_配達用メモ('メモ')
->商品検索()
->商品検索結果_選択(1)
->出荷情報登録();

$I->see('出荷情報を登録しました。', ShippingEditPage::$登録完了メッセージ);
}

public function shipping_出荷CSV登録(\AcceptanceTester $I)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
use Eccube\Entity\Shipping;
use Eccube\Entity\OrderItem;

class ShippingEditControllerTest extends AbstractAdminWebTestCase
class ShippingControllerTest extends AbstractAdminWebTestCase
{
/**
* @var ShippingRepository
Expand Down Expand Up @@ -67,9 +67,39 @@ public function testShippingMessageNoticeWhenPost()
$this->assertContains('出荷に関わる情報が変更されました:送料の変更が必要な場合は、受注管理より手動で変更してください。', $info);
}

public function testEditAddShippingDate()
public function testEditAddTrackingNumber()
{
$this->markTestSkipped('出荷日は更新不可のためスキップ');
$trackingNumber = '11111111111111111111';

$Order = $this->createOrder($this->createCustomer());
/** @var Shipping $Shipping */
$Shipping = $Order->getShippings()->first();
$shippingId = $Shipping->getId();

$this->assertNull($Shipping->getTrackingNumber());

$crawler = $this->client->request(
'GET',
$this->generateUrl('admin_shipping_edit', ['id' => $Order->getId()])
);
$this->assertTrue($this->client->getResponse()->isSuccessful());

$form = $crawler->selectButton('出荷情報を登録')->form();
$form['form[shippings][0][tracking_number]']->setValue($trackingNumber);

$this->client->submit($form);
$crawler = $this->client->followRedirect();

$success = $crawler->filter('#page_admin_shipping_edit > div.c-container > div.c-contentsArea > div.alert.alert-success')->text();
$this->assertContains('出荷情報を登録しました。', $success);

$expectedShipping = $this->entityManager->find(Shipping::class, $shippingId);
$this->assertEquals($trackingNumber, $expectedShipping->getTrackingNumber());
}

public function testEditToShipped()
{
$this->markTestIncomplete('出荷日は更新不可のためスキップ');
$this->client->enableProfiler();

$Order = $this->createOrder($this->createCustomer());
Expand Down Expand Up @@ -178,6 +208,7 @@ public function testEditRemoveShippingDate()
* @param Order $Order
*
* @return array
* @deprecated Controller で FormInterface::isSubmitted() を使用しているため使用不可
*/
private function createShippingForm(Order $Order = null): array
{
Expand Down

0 comments on commit 48f8970

Please sign in to comment.