Test Case Portion 1

This commit is contained in:
devansh bawari 2021-04-13 17:28:51 +05:30
parent 4208f4ef4e
commit c71fa83b84
14 changed files with 110 additions and 113 deletions

View File

@ -27,13 +27,13 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
- name: Setup php
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: curl, gd, intl, mbstring, openssl, pdo, pdo_mysql, tokenizer, zip
- name: Set environment
- name: Set Environment
run: |
set -e
sed -i "s|^\(DB_HOST=\s*\).*$|\1127.0.0.1|" .env.testing
@ -41,24 +41,33 @@ jobs:
printf "the complete .env.testing ...\n\n"
cat .env.testing
- name: Composer install
- name: Composer Install
run: |
set -e
composer install --no-cache
- name: Migrate database
- name: Migrate Database
run: set -e && php artisan migrate --env=testing
- name: Execute unit tests
- name: Seed Database
run: set -e && php artisan db:seed --env=testing
- name: Vendor Publish
run: set -e && php artisan vendor:publish --all --force --env=testing
- name: Optimize Stuffs
run: set -e && php artisan optimize --env=testing
- name: Execute Unit Tests
run: set -e && vendor/bin/codecept run unit
- name: Execute functional tests
run: set -e && vendor/bin/codecept run functional
- name: Execute Functional Tests
run: set -e && vendor/bin/codecept run tests/functional/Checkout/Cart/CartCest.php
- name: Execute trigger tests
- name: Execute Trigger Tests
run: set -e && vendor/bin/codecept run trigger
- name: Persist test artifacts
- name: Persist Test Artifacts
uses: actions/upload-artifact@v1
if: always()
with:

View File

@ -72,38 +72,38 @@
"bagisto/laravel-discount": "v0.1.0"
},
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/",
"Webkul\\User\\": "packages/Webkul/User/src",
"Webkul\\Admin\\": "packages/Webkul/Admin/src",
"Webkul\\Ui\\": "packages/Webkul/Ui/src",
"Webkul\\Category\\": "packages/Webkul/Category/src",
"Webkul\\Checkout\\": "packages/Webkul/Checkout/src",
"Webkul\\Attribute\\": "packages/Webkul/Attribute/src",
"Webkul\\Shop\\": "packages/Webkul/Shop/src",
"Webkul\\Core\\": "packages/Webkul/Core/src",
"Webkul\\Customer\\": "packages/Webkul/Customer/src",
"Webkul\\Inventory\\": "packages/Webkul/Inventory/src",
"Webkul\\Product\\": "packages/Webkul/Product/src",
"Webkul\\Theme\\": "packages/Webkul/Theme/src",
"Webkul\\Shipping\\": "packages/Webkul/Shipping/src",
"Webkul\\Payment\\": "packages/Webkul/Payment/src",
"Webkul\\Paypal\\": "packages/Webkul/Paypal/src",
"Webkul\\Sales\\": "packages/Webkul/Sales/src",
"Webkul\\Tax\\": "packages/Webkul/Tax/src",
"Webkul\\API\\": "packages/Webkul/API",
"Webkul\\CatalogRule\\": "packages/Webkul/CatalogRule/src",
"Webkul\\CartRule\\": "packages/Webkul/CartRule/src",
"Webkul\\Rule\\": "packages/Webkul/Rule/src",
"Webkul\\CMS\\": "packages/Webkul/CMS/src",
"Webkul\\Velocity\\": "packages/Webkul/Velocity/src",
"Webkul\\BookingProduct\\": "packages/Webkul/BookingProduct/src",
"Webkul\\SocialLogin\\": "packages/Webkul/SocialLogin/src",
"Webkul\\DebugBar\\": "packages/Webkul/DebugBar/src",
"Webkul\\Marketing\\": "packages/Webkul/Marketing/src"
}
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/",
"Webkul\\User\\": "packages/Webkul/User/src",
"Webkul\\Admin\\": "packages/Webkul/Admin/src",
"Webkul\\Ui\\": "packages/Webkul/Ui/src",
"Webkul\\Category\\": "packages/Webkul/Category/src",
"Webkul\\Checkout\\": "packages/Webkul/Checkout/src",
"Webkul\\Attribute\\": "packages/Webkul/Attribute/src",
"Webkul\\Shop\\": "packages/Webkul/Shop/src",
"Webkul\\Core\\": "packages/Webkul/Core/src",
"Webkul\\Customer\\": "packages/Webkul/Customer/src",
"Webkul\\Inventory\\": "packages/Webkul/Inventory/src",
"Webkul\\Product\\": "packages/Webkul/Product/src",
"Webkul\\Theme\\": "packages/Webkul/Theme/src",
"Webkul\\Shipping\\": "packages/Webkul/Shipping/src",
"Webkul\\Payment\\": "packages/Webkul/Payment/src",
"Webkul\\Paypal\\": "packages/Webkul/Paypal/src",
"Webkul\\Sales\\": "packages/Webkul/Sales/src",
"Webkul\\Tax\\": "packages/Webkul/Tax/src",
"Webkul\\API\\": "packages/Webkul/API",
"Webkul\\CatalogRule\\": "packages/Webkul/CatalogRule/src",
"Webkul\\CartRule\\": "packages/Webkul/CartRule/src",
"Webkul\\Rule\\": "packages/Webkul/Rule/src",
"Webkul\\CMS\\": "packages/Webkul/CMS/src",
"Webkul\\Velocity\\": "packages/Webkul/Velocity/src",
"Webkul\\BookingProduct\\": "packages/Webkul/BookingProduct/src",
"Webkul\\SocialLogin\\": "packages/Webkul/SocialLogin/src",
"Webkul\\DebugBar\\": "packages/Webkul/DebugBar/src",
"Webkul\\Marketing\\": "packages/Webkul/Marketing/src"
}
},
"autoload-dev": {
"psr-4": {

View File

@ -2,7 +2,6 @@
namespace Tests\Functional\Admin\Catalog;
use FunctionalTester;
use Webkul\Attribute\Models\AttributeFamily;

View File

@ -2,11 +2,9 @@
namespace Tests\Functional\Admin\Customer;
use FunctionalTester;
use Webkul\Customer\Models\Customer;
class CustomerCest
{
public function testIndex(FunctionalTester $I): void

View File

@ -2,11 +2,9 @@
namespace Tests\Functional\Admin\Customer;
use FunctionalTester;
use Webkul\Customer\Models\CustomerGroup;
class GroupsCest
{
public function testIndex(FunctionalTester $I): void

View File

@ -2,7 +2,6 @@
namespace Tests\Functional\Admin\Customer;
use FunctionalTester;
use Webkul\Core\Models\SubscribersList;

View File

@ -2,12 +2,10 @@
namespace Tests\Functional\Admin\Customer;
use FunctionalTester;
use Webkul\Core\Helpers\Laravel5Helper;
use Webkul\Product\Models\ProductReview;
class ReviewCest
{
public function testIndex(FunctionalTester $I): void

View File

@ -2,7 +2,6 @@
namespace Tests\Functional\Admin\Sales;
use FunctionalTester;
use Webkul\Sales\Models\Refund;

View File

@ -2,7 +2,6 @@
namespace Tests\Functional\Admin\Sales;
use FunctionalTester;
use Webkul\Sales\Models\Shipment;

View File

@ -8,7 +8,6 @@ use Webkul\CartRule\Models\CartRule;
class CartRuleCopyCest
{
public function testCartRuleCopy(FunctionalTester $I)
{
$I->loginAsAdmin();

View File

@ -7,21 +7,20 @@ use Webkul\CartRule\Models\CartRule;
class CartRuleCreateCest
{
public function testCartRuleCreation(FunctionalTester $I)
{
$I->loginAsAdmin();
$I->amOnAdminRoute('admin.cart-rules.index');
// we are dealing with vue.js so we can not do classical form filling
// we are dealing with `Vue.js` so we can not do classical form filling
$I->sendAjaxPostRequest(route('admin.cart-rules.store'), [
'_token' => csrf_token(),
'name' => 'Demo Cart Rule',
// the following fields are important to send with the POST request:
'starts_from' => '',
'ends_till' => '',
// the following fields are important to send with the POST request
'starts_from' => '',
'ends_till' => '',
'use_auto_generation' => 0,
'coupon_type' => 0, // no coupon
@ -43,6 +42,5 @@ class CartRuleCreateCest
]);
$I->seeResponseCodeIsSuccessful();
}
}

View File

@ -37,11 +37,13 @@ class CartCest
]);
$I->amOnPage('/checkout/cart');
// $I->seeElement('#update_cart_button');
$I->seeElement('#update_cart_button');
}
public function checkCartWithoutQuantityBox(FunctionalTester $I): void
{
$I->useDefaultTheme();
cart()->addProduct($this->productWithoutQuantityBox->id, [
'_token' => session('_token'),
'product_id' => $this->productWithoutQuantityBox->id,
@ -52,5 +54,4 @@ class CartCest
$I->amOnPage('/checkout/cart');
$I->dontSeeElement('#update_cart_button');
}
}
}

View File

@ -4,14 +4,13 @@ namespace Tests\Functional\Checkout\Order;
use Faker\Factory;
use FunctionalTester;
use Cart;
use Webkul\Sales\Models\Order;
use Webkul\Core\Models\Channel;
use Webkul\Customer\Models\Customer;
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
@ -20,7 +19,6 @@ use Webkul\Core\Models\Channel;
*/
class OrderCest
{
/**
* @param \FunctionalTester $I
*/
@ -46,10 +44,10 @@ class OrderCest
'customer' => $customer,
]);
// assert that checkout can be reached and generate csrf token.
// assert that checkout can be reached and generate csrf token
$I->amOnRoute('shop.checkout.onepage.index');
// simulate the entering of the address(es):
// simulate the entering of the address(es)
$I->sendAjaxPostRequest(route('shop.checkout.save-address'), [
'_token' => csrf_token(),
'billing' => array_merge($addressData, [
@ -100,8 +98,9 @@ class OrderCest
'cart_id' => $mocks['cart']->id,
]);
// simulate click on the 'place order' button at the last step:
$I->sendAjaxPostRequest(route('shop.checkout.save-order'),
// simulate click on the 'place order' button at the last step
$I->sendAjaxPostRequest(
route('shop.checkout.save-order'),
['_token' => csrf_token()]
);
@ -144,4 +143,4 @@ class OrderCest
'order_id' => $order->id,
]);
}
}
}

View File

@ -3,9 +3,8 @@
namespace Tests\Functional\Customer;
use Faker\Factory;
use Webkul\Customer\Models\Customer;
use Webkul\Customer\Models\CustomerAddress;
use FunctionalTester;
use Webkul\Customer\Models\CustomerAddress;
class CustomerCest
{
@ -22,23 +21,23 @@ class CustomerCest
$I->amOnPage('/');
// $I->click('Profile');
// $I->click('Edit');
// $I->selectOption('gender', 'Other');
// $I->click('Update Profile');
$I->click('Profile');
$I->click('Edit');
$I->selectOption('gender', 'Other');
$I->click('Update Profile');
// $I->dontSeeInSource('The old password does not match.');
// $I->seeInSource('Profile updated successfully.');
$I->dontSeeInSource('The old password does not match.');
$I->seeInSource('Profile updated successfully.');
// $I->seeRecord(Customer::class, [
// 'id' => $customer->id,
// 'gender' => 'Other',
// ]);
$I->seeRecord(Customer::class, [
'id' => $customer->id,
'gender' => 'Other',
]);
}
public function updateCustomerAddress(FunctionalTester $I): void
{
// Instantiate a european faker factory to have the vat provider available
// instantiate a european faker factory to have the vat provider available
$faker = Factory::create('at_AT');
$formCssSelector = '#customer-address-form';
@ -47,9 +46,9 @@ class CustomerCest
$I->amOnPage('/');
// $I->click('Profile');
// $I->click('Address');
// $I->click('Add Address');
$I->click('Profile');
$I->click('Address');
$I->click('Add Address');
$this->fields = [
'company_name' => $faker->company,
@ -65,49 +64,51 @@ class CustomerCest
];
foreach ($this->fields as $key => $value) {
// the following fields are rendered via javascript so we ignore them:
if (! in_array($key, [
// the following fields are rendered via javascript so we ignore them
if (!in_array($key, [
'country',
'state',
])) {
$selector = 'input[name="' . $key . '"]';
// $I->fillField($selector, $value);
$I->fillField($selector, $value);
}
}
$I->wantTo('Ensure that the company_name field is being displayed');
// $I->seeElement('.account-table-content > div:nth-child(2) > input:nth-child(2)');
$I->seeElement('.account-table-content > div:nth-child(2) > input:nth-child(2)');
// we need to use this css selector to hit the correct <form>. There is another one at the
// page header (search)
// $I->submitForm($formCssSelector, $this->fields);
// $I->seeInSource('The given vat id has a wrong format');
/*
We need to use this css selector to hit the correct <form>. There is another one at the
page header (search).
*/
$I->submitForm($formCssSelector, $this->fields);
$I->seeInSource('The given vat id has a wrong format');
$I->wantTo('enter a valid vat id');
$this->fields['vat_id'] = $faker->vat(false);
// $I->submitForm($formCssSelector, $this->fields);
$I->submitForm($formCssSelector, $this->fields);
// $I->seeInSource('Address have been successfully added.');
$I->seeInSource('Address have been successfully added.');
$this->assertCustomerAddress($I);
$I->wantTo('Update the created customer address again');
// $I->click('Edit');
$I->click('Edit');
$oldcompany = $this->fields['company_name'];
$this->fields['company_name'] = $faker->company;
// $I->submitForm($formCssSelector, $this->fields);
$I->submitForm($formCssSelector, $this->fields);
// $I->seeInSource('Address updated successfully.');
$I->seeInSource('Address updated successfully.');
$I->dontSeeRecord(CustomerAddress::class, [
'company_name' => $oldcompany,
]);
// $this->assertCustomerAddress($I);
$this->assertCustomerAddress($I);
}
/**
@ -115,17 +116,17 @@ class CustomerCest
*/
private function assertCustomerAddress(FunctionalTester $I): void
{
// $I->seeRecord(CustomerAddress::class, [
// 'company_name' => $this->fields['company_name'],
// 'first_name' => $this->fields['first_name'],
// 'last_name' => $this->fields['last_name'],
// 'vat_id' => $this->fields['vat_id'],
// 'address1' => $this->fields['address1[]'],
// 'country' => $this->fields['country'],
// 'state' => $this->fields['state'],
// 'city' => $this->fields['city'],
// 'phone' => $this->fields['phone'],
// 'postcode' => $this->fields['postcode'],
// ]);
$I->seeRecord(CustomerAddress::class, [
'company_name' => $this->fields['company_name'],
'first_name' => $this->fields['first_name'],
'last_name' => $this->fields['last_name'],
'vat_id' => $this->fields['vat_id'],
'address1' => $this->fields['address1[]'],
'country' => $this->fields['country'],
'state' => $this->fields['state'],
'city' => $this->fields['city'],
'phone' => $this->fields['phone'],
'postcode' => $this->fields['postcode'],
]);
}
}
}