add additional assertions to OrderCest.php

This commit is contained in:
Herbert Maschke 2020-03-03 11:18:18 +01:00
parent d3d666d230
commit e094dfd09c
2 changed files with 68 additions and 8 deletions

View File

@ -129,14 +129,24 @@ class Laravel5Helper extends Laravel5
$type = 'simple';
}
$totalQtyOrdered = 0;
$cartItems = [];
$generatedCartItems = rand(3, 10);
for ($i = 2; $i <= $generatedCartItems; $i++) {
$quantity = random_int(1, 10);
$cartItem = $I->have(CartItem::class, [
'type' => $type,
'quantity' => random_int(1, 10),
'quantity' => $quantity,
'cart_id' => $cart->id,
'product_id' => $product->id,
]);
$totalQtyOrdered += $quantity;
$cartItems[] = $cartItem;
}
// actually set the cart to the user's session
@ -146,11 +156,12 @@ class Laravel5Helper extends Laravel5
$I->setSession(['cart' => $stub]);
return [
'cart' => $cart,
'product' => $product,
'customer' => $customer,
'cartAddress' => $cartAddress,
'cartItem' => $cartItem,
'cart' => $cart,
'product' => $product,
'customer' => $customer,
'cartAddress' => $cartAddress,
'cartItems' => $cartItems,
'totalQtyOrdered' => $totalQtyOrdered,
];
}

View File

@ -5,8 +5,13 @@ namespace Tests\Functional\Checkout\Cart;
use Faker\Factory;
use FunctionalTester;
use Cart;
use Webkul\Sales\Models\Order;
use Webkul\Sales\Models\OrderAddress;
use Webkul\Sales\Models\OrderPayment;
use Webkul\Checkout\Models\CartAddress;
use Webkul\Checkout\Models\CartPayment;
use Webkul\Customer\Models\Customer;
use Webkul\Core\Models\Channel;
/**
* Class OrderCest
@ -61,7 +66,15 @@ class OrderCest
$I->seeResponseCodeIsSuccessful();
$I->seeRecord(CartAddress::class, $addressData);
$I->seeRecord(CartAddress::class, array_merge($addressData, [
'address_type' => 'shipping',
'cart_id' => $mocks['cart']->id,
]));
$I->seeRecord(CartAddress::class, array_merge($addressData, [
'address_type' => 'billing',
'cart_id' => $mocks['cart']->id,
]));
$I->sendAjaxPostRequest(route('shop.checkout.save-shipping'), [
'_token' => csrf_token(),
@ -79,6 +92,12 @@ class OrderCest
$I->seeResponseCodeIsSuccessful();
$I->seeRecord(CartPayment::class, [
'method' => 'cashondelivery',
'method_title' => null,
'cart_id' => $mocks['cart']->id,
]);
// simulate click on the 'place order' button at the last step:
$I->sendAjaxPostRequest(route('shop.checkout.save-order'),
['_token' => csrf_token()]
@ -86,6 +105,36 @@ class OrderCest
$I->seeResponseCodeIsSuccessful();
$I->seeRecord(OrderAddress::class, $addressData);
$order = $I->grabRecord(Order::class, [
'status' => 'pending',
'channel_name' => 'Default',
'is_guest' => 0,
'shipping_method' => 'free_free',
'shipping_title' => 'Free Shipping - Free Shipping',
'shipping_description' => 'Free Shipping',
'customer_type' => Customer::class,
'channel_id' => 1,
'channel_type' => Channel::class,
'cart_id' => $mocks['cart']->id,
'customer_id' => $customer->id,
'total_item_count' => count($mocks['cartItems']),
'total_qty_ordered' => $mocks['totalQtyOrdered'],
]);
$I->seeRecord(OrderAddress::class, array_merge($addressData, [
'order_id' => $order->id,
'address_type' => 'shipping',
]));
$I->seeRecord(OrderAddress::class, array_merge($addressData, [
'order_id' => $order->id,
'address_type' => 'billing',
]));
$I->seeRecord(OrderPayment::class, [
'method' => 'cashondelivery',
'method_title' => null,
'order_id' => $order->id,
]);
}
}