Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 6.2.0 #937

Merged
merged 88 commits into from
Jun 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
2c5c317
Fix for adding issuers for iDEAL in table: ps_ol_payment_method_issuer
sharkooon Apr 5, 2024
9eb2e03
temporary debug mode
SimonasB88 Apr 15, 2024
811e017
cypress update
SimonasB88 Apr 15, 2024
f279cb5
little test code refactoring
SimonasB88 Apr 15, 2024
652933e
small code corrections
SimonasB88 Apr 15, 2024
6eddc30
Fixing case where with payment fee and multiple orders order status w…
JevgenijVisockij Apr 17, 2024
c75fc72
Moved order retrieval logic to repository
JevgenijVisockij Apr 17, 2024
8eddf11
small commands.js additions
SimonasB88 Apr 17, 2024
b9fbc47
removing debug mode
SimonasB88 Apr 17, 2024
e71a0ba
Merge pull request #914 from mollie/e2e-improvements-april
SimonasB88 Apr 17, 2024
d93da8f
debug mode
SimonasB88 Apr 22, 2024
600e2c3
cypress update
SimonasB88 Apr 22, 2024
6a60105
adding Bancomat payment method to E2E
SimonasB88 Apr 22, 2024
6d2f7a1
adding Bancomat cases to the test suite
SimonasB88 Apr 22, 2024
919b91f
disabling debug
SimonasB88 Apr 22, 2024
5b62474
temporary debug mode, cypress bump
SimonasB88 May 6, 2024
f59c46b
improving test
SimonasB88 May 6, 2024
52e233a
improving test
SimonasB88 May 6, 2024
2e127ce
improving test
SimonasB88 May 6, 2024
092a5d1
disabling debug
SimonasB88 May 6, 2024
4e3054b
Merge pull request #915 from mollie/e2e-new-payments
SimonasB88 May 7, 2024
2b04ece
Added Alma and Bancomat payment methods
JevgenijVisockij May 14, 2024
e2e0012
Merge pull request #921 from mollie/PIPRES-407
JevgenijVisockij May 14, 2024
d70f454
Merge pull request #902 from sharkooon/patch-2
JevgenijVisockij May 14, 2024
f225c3c
Stan fix
JevgenijVisockij May 14, 2024
8436ac1
Merge pull request #906 from mollie/PIPRES-363
JevgenijVisockij May 14, 2024
835f5fd
Fixed carriers not updating properly
JevgenijVisockij May 14, 2024
9c8e0c0
Conflict fix
JevgenijVisockij May 14, 2024
8b7c2a0
PIPRES-349: Append subscription carrier ID to metadata
mandan2 Nov 27, 2023
9c4e7aa
csfixer and phpstan
mandan2 Nov 28, 2023
c8369fa
exception naming fix
mandan2 Nov 28, 2023
ddcbb2f
renamed method and class DTO
mandan2 Nov 28, 2023
9ffecae
PIPRES-349: Restrict subscription product add to cart based on subscr…
mandan2 Nov 28, 2023
90bdba1
PIPRES-349: Abstract recurring orders product creation (#851)
mandan2 Nov 28, 2023
b4d66fc
PIPRES-349: Abstract recurring order creation (#852)
mandan2 Dec 4, 2023
00ee473
PIPRES-349: Subscription settings validation in creation handler (#853)
mandan2 Dec 4, 2023
7280013
PIPRES-349: Find subscription product provider (#855)
mandan2 Dec 4, 2023
c36d9d9
PIPRES-349: Abstract subscription order total provider (#857)
mandan2 Dec 11, 2023
2a54853
PIPRES-349: Subscription carrier data provider (#858)
mandan2 Dec 11, 2023
a75f314
PIPRES-349: Update subscription action (#859)
mandan2 Dec 11, 2023
89db2d3
PIPRES-349: Update recurring order action (#860)
mandan2 Dec 11, 2023
1a48e1f
PIPRES-349: Removed redundant services to optimize process (#861)
mandan2 Dec 12, 2023
0318c26
PIPRES-349: Clone original subscription order cart (#862)
mandan2 Dec 12, 2023
70d29a2
PIPRES-349: Cart clone handler for recurring order handler (#863)
mandan2 Dec 13, 2023
7d86b15
PIPRES-349: Subscription general mail data provider (#864)
mandan2 Dec 18, 2023
c5a9e97
PIPRES-349: Use same shared abstract repository (#865)
mandan2 Dec 19, 2023
4226d1d
PIPRES-349: Replace repository retrieve methods for carrier update se…
mandan2 Dec 19, 2023
2ef0803
PIPRES-349: Subscription carrier update mail service (#868)
mandan2 Dec 19, 2023
5e11e16
PIPRES-349: Update subscription carrier handler
mandan2 Dec 19, 2023
1a5b4c4
PIPRES-349: Update carrier callers
mandan2 Dec 19, 2023
158a306
Fixed carriers not updating properly
JevgenijVisockij May 14, 2024
430064b
Merge pull request #869 from mollie/PIPRES-349-update-subscription-ca…
JevgenijVisockij May 14, 2024
4bacd7d
Make Alma payment only method
JevgenijVisockij May 14, 2024
be0eda2
Merge pull request #924 from mollie/PIPRES-407
JevgenijVisockij May 14, 2024
1b0f7f1
PIPRES-431: league container conflict fix
GytisZum May 22, 2024
98cc2e6
PIPRES-413: dropdown in subscriptions tab fix
GytisZum May 22, 2024
fe370e1
PIPRES-410: BO - empty maximum fee will make this value unlimited
GytisZum May 22, 2024
8d64752
PIPRES-366: error logger consent option addded
GytisZum May 22, 2024
753c916
licence header added into new file
GytisZum May 22, 2024
8345dce
PIPRES-412: bootstrap 5 compatibility improved
GytisZum May 22, 2024
88ccd32
php cs fixer fux
GytisZum May 22, 2024
72fafc3
PIPRES-373: start date added into subscription request
GytisZum May 22, 2024
4d0396a
PIPRES-366: translation module added into string
GytisZum May 27, 2024
51f8840
Merge pull request #925 from mollie/PIPRES-431/dependencies-conflict
GytisZum May 27, 2024
3b4f2eb
Merge pull request #926 from mollie/PIPRES-413/dropdown-fix
GytisZum May 27, 2024
5f6aab5
Merge pull request #927 from mollie/PIPRES-410/maximum-fee-field
GytisZum May 27, 2024
c633438
Merge pull request #928 from mollie/PIPRES-366/error-logging
GytisZum May 27, 2024
e3bc59a
Merge pull request #929 from mollie/PIPRES-412/bootstrap-fix
GytisZum May 27, 2024
a2c64fb
update with new changes
GytisZum May 27, 2024
ad8fd43
stan error fix
GytisZum May 27, 2024
8f851e4
league container fix
GytisZum May 27, 2024
7540e51
cs fixer fix
GytisZum May 27, 2024
f4bb97c
PIPRES-438: apple certificate update
GytisZum May 27, 2024
9ae779d
php stan fix
GytisZum May 28, 2024
735a74c
Merge pull request #930 from mollie/PIPRES-373/subscription-improvements
GytisZum May 28, 2024
d953bab
Merge pull request #932 from mollie/PIPRES-438/apple-certificate
GytisZum May 28, 2024
6857e4c
php cs fixer
GytisZum May 28, 2024
0da69f6
Merge pull request #931 from mollie/PIPRES-431/container-fix
GytisZum May 28, 2024
6ce0816
conflict fix
GytisZum May 28, 2024
8a42ec5
Merge pull request #923 from mollie/PIPRES-349-enable-subscription-ca…
GytisZum May 29, 2024
140b18b
changlog update and version bump
GytisZum May 29, 2024
17712bb
Merge pull request #933 from mollie/changelog-update
GytisZum May 29, 2024
4b18ae6
revert error logging concent
GytisZum Jun 5, 2024
8ecf70b
Merge pull request #935 from GytisZum/revert-error-logging
GytisZum Jun 6, 2024
a40efb3
changelog changes
GytisZum Jun 6, 2024
a5bfc58
automatic zip creation added
GytisZum Jun 6, 2024
39945bd
Merge pull request #936 from GytisZum/changelog-changes
GytisZum Jun 6, 2024
bd9da0b
Merge pull request #922 from mollie/release-6.2.0
GytisZum Jun 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,13 @@ upgrading-module-test-$(VERSION):

npm-package-install:
cd views/assets && npm i && npm run build

prepare-zip:
composer install --no-dev --optimize-autoloader --classmap-authoritative
composer dump-autoload --no-dev --optimize --classmap-authoritative
cp .github/.htaccess vendor/.htaccess
rm -rf .git .docker .editorconfig .github tests .php-cs-fixer.php Makefile cypress .docker cypress.config.js cypress.env.json docker-compose*.yml .gitignore bin codeception.yml package-lock.json package.json .php_cs.dist .php-cs-fixer.dist




10 changes: 10 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@

# Changelog #

## Changes in release 6.2.0 ##
+ New payment methods: Bancomat and Alma
+ Apple certificate update
+ Conflicting services fix
+ Bootstrap 5 compatibility improved
+ Maximum fee field
+ Multi carrier for subscription orders added
+ Design improvements in BO
+ Improved subscription creation logic

## Changes in release 6.1.1 ##
+ Updated translations for Dutch, German, English and French languages
+ Added credit card translations for Italian and Spanish languages
Expand Down
4 changes: 3 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
},
"require-dev": {
"roave/security-advisories": "dev-latest",
"invertus/prestashop-models": "^1.0",
"prestashop/php-dev-tools": "*",
"phpunit/phpunit": "~5.7"
},
Expand All @@ -32,7 +33,8 @@
"autoload": {
"psr-4": {
"Mollie\\": "src/",
"Mollie\\Subscription\\": "subscription/"
"Mollie\\Subscription\\": "subscription/",
"Mollie\\Shared\\": "shared/"
},
"classmap": [
"mollie.php",
Expand Down
47 changes: 27 additions & 20 deletions controllers/front/ajax.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@
use Mollie\Adapter\ConfigurationAdapter;
use Mollie\Adapter\ToolsAdapter;
use Mollie\Controller\AbstractMollieController;
use Mollie\Errors\Http\HttpStatusCode;
use Mollie\Exception\FailedToProvidePaymentFeeException;
use Mollie\Infrastructure\Response\JsonResponse;
use Mollie\Provider\PaymentFeeProviderInterface;
use Mollie\Repository\CurrencyRepositoryInterface;
use Mollie\Subscription\Exception\SubscriptionProductValidationException;
use Mollie\Shared\Core\Shared\Repository\CurrencyRepositoryInterface;
use Mollie\Subscription\Exception\ExceptionCode;
use Mollie\Subscription\Validator\CanProductBeAddedToCartValidator;
use Mollie\Utility\NumberUtility;

Expand Down Expand Up @@ -185,30 +187,35 @@ private function displayCheckoutError(): void

private function validateProduct(): void
{
/** @var CanProductBeAddedToCartValidator $cartValidation */
$cartValidation = $this->module->getService(CanProductBeAddedToCartValidator::class);
/** @var CanProductBeAddedToCartValidator $canProductBeAddedToCartValidator */
$canProductBeAddedToCartValidator = $this->module->getService(CanProductBeAddedToCartValidator::class);

$product = Tools::getValue('product');

$productCanBeAdded = true;
$message = '';

try {
$cartValidation->validate((int) $product['id_product_attribute']);
} catch (SubscriptionProductValidationException $e) {
$productCanBeAdded = false;
$message = $this->module->l('Please note: Only one subscription product can be added to the cart at a time.', self::FILE_NAME);
$canProductBeAddedToCartValidator->validate((int) ($product['id_product_attribute'] ?? 0));
} catch (\Throwable $exception) {
if ($exception->getCode() === ExceptionCode::CART_ALREADY_HAS_SUBSCRIPTION_PRODUCT) {
$this->ajaxResponse(JsonResponse::error(
$this->module->l('Please note: Only one subscription product can be added to the cart at a time.', self::FILE_NAME),
HttpStatusCode::HTTP_BAD_REQUEST
));
}

if ($exception->getCode() === ExceptionCode::CART_INVALID_SUBSCRIPTION_SETTINGS) {
$this->ajaxResponse(JsonResponse::error(
$this->module->l('Subscription service is disabled. Please change the attribute to Subscription: none.', self::FILE_NAME),
HttpStatusCode::HTTP_BAD_REQUEST
));
}

$this->ajaxResponse(JsonResponse::error(
$this->module->l('Unknown error. Try again or change the attribute to Subscription: none.', self::FILE_NAME),
HttpStatusCode::HTTP_BAD_REQUEST
));
}

$this->ajaxRender(
json_encode(
[
'success' => true,
'isValid' => $productCanBeAdded,
'message' => $message,
]
)
);
$this->ajaxResponse(JsonResponse::success([]));
}

private function returnDefaultOrderSummaryBlock(Cart $cart, array $errorData = [], array $presentedCart = null): void
Expand Down
26 changes: 22 additions & 4 deletions controllers/front/recurringOrderDetail.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,28 @@ public function initContent()
$recurringOrderId = (int) Tools::getValue('id_mol_recurring_order');
$recurringOrderId = Validate::isUnsignedId($recurringOrderId) ? $recurringOrderId : false;

$failureRedirectUrl = Context::getContext()->link->getModuleLink($this->module->name, 'subscriptions', [], true);

/** @var RecurringOrderRepositoryInterface $recurringOrderRepository */
$recurringOrderRepository = $this->module->getService(RecurringOrderRepositoryInterface::class);

$recurringOrder = $recurringOrderRepository->findOneBy(['id_mol_recurring_order' => $recurringOrderId]);
try {
/** @var \MolRecurringOrder $recurringOrder */
$recurringOrder = $recurringOrderRepository->findOrFail([
'id_mol_recurring_order' => $recurringOrderId,
]);
} catch (\Throwable $exception) {
// TODO add notification about data retrieve failure

Tools::redirect($failureRedirectUrl);

return;
}

if ((int) $recurringOrder->id_customer !== (int) $this->context->customer->id) {
Tools::redirect($failureRedirectUrl);

if (!Validate::isLoadedObject($recurringOrder) || (int) $recurringOrder->id_customer !== (int) $this->context->customer->id) {
Tools::redirect(Context::getContext()->link->getModuleLink($this->module->name, 'subscriptions', [], true));
return;
}

/** @var PrestaLoggerInterface $logger */
Expand All @@ -82,10 +97,13 @@ public function initContent()
'Exception code' => $exception->getCode(),
]);

Tools::redirect(Context::getContext()->link->getModuleLink($this->module->name, 'subscriptions', [], true));
Tools::redirect($failureRedirectUrl);

return;
}

parent::initContent();

$this->context->controller->addCSS($this->module->getPathUri() . 'views/css/front/subscription/customer_order_detail.css');
$this->setTemplate('module:mollie/views/templates/front/subscription/customerRecurringOrderDetail.tpl');
}
Expand Down
46 changes: 24 additions & 22 deletions controllers/front/subscriptions.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* @codingStandardsIgnoreStart
*/

use Mollie\Repository\MolCustomerRepository;
use Mollie\Repository\MolCustomerRepositoryInterface;
use Mollie\Subscription\Presenter\RecurringOrdersPresenter;

/*
Expand Down Expand Up @@ -52,40 +52,29 @@ class mollieSubscriptionsModuleFrontController extends ModuleFrontController
*/
public $display_column_left;

/**
* @throws PrestaShopException
*/
public function initContent()
{
$this->display_column_right = false;
$this->display_column_left = false;
$context = Context::getContext();
if (empty($context->customer->id)) {

if (empty($this->context->customer->id)) {
Tools::redirect('index.php');
}

/** @var MolCustomerRepository $molCustomerRepository */
$molCustomerRepository = $this->module->getService(MolCustomerRepository::class);
/** @var MolCustomerRepositoryInterface $molCustomerRepository */
$molCustomerRepository = $this->module->getService(MolCustomerRepositoryInterface::class);

/** @var RecurringOrdersPresenter $recurringOrdersPresenter */
$recurringOrdersPresenter = $this->module->getService(RecurringOrdersPresenter::class);

$molCustomer = $molCustomerRepository->findOneBy(['email' => $context->customer->email]);

$recurringOrdersPresentData = [];
if ($molCustomer) {
$recurringOrdersPresentData = $recurringOrdersPresenter->present($molCustomer->customer_id);
}

parent::initContent();

$this->context->smarty->assign([
'recurringOrdersData' => $recurringOrdersPresentData,
/** @var ?\MolCustomer $molCustomer */
$molCustomer = $molCustomerRepository->findOneBy([
'email' => $this->context->customer->email,
]);

$this->context->smarty->tpl_vars['page']->value['body_classes']['page-customer-account'] = true;

$this->setTemplate('module:mollie/views/templates/front/subscription/customerSubscriptionsData.tpl');
$this->prepareTemplate(
$molCustomer ? $recurringOrdersPresenter->present($molCustomer->customer_id) : []
);
}

public function setMedia()
Expand All @@ -97,4 +86,17 @@ public function setMedia()
$this->context->controller->addJS($js_path . 'front.js');
$this->context->controller->addCSS($css_path . 'customerPersonalData.css');
}

private function prepareTemplate(array $recurringOrdersPresentData = []): void
{
parent::initContent();

$this->context->smarty->assign([
'recurringOrdersData' => $recurringOrdersPresentData,
]);

$this->context->smarty->tpl_vars['page']->value['body_classes']['page-customer-account'] = true;

$this->setTemplate('module:mollie/views/templates/front/subscription/customerSubscriptionsData.tpl');
}
}
33 changes: 2 additions & 31 deletions cypress/e2e/ps1785/01_mollie.ps1785.ModuleConfiguration.specs.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,35 +43,9 @@ it('C339339: 03 Checking the Advanced Settings tab, verifying the Front-end comp
cy.visit('/admin1/')
cy.OpeningModuleDashboardURL()
cy.get('[href="#advanced_settings"]').click({force:true})
cy.get('[id="MOLLIE_PAYMENTSCREEN_LOCALE"]').should('be.visible')
cy.get('[id="MOLLIE_SEND_ORDER_CONFIRMATION"]').should('be.visible')
cy.get('[id="MOLLIE_AUTHORIZABLE_PAYMENT_INVOICE_ON_STATUS"]').should('be.visible')
cy.get('[class="help-block"]').should('be.visible')
cy.get('[id="MOLLIE_STATUS_AWAITING"]').should('be.visible')
cy.get('[id="MOLLIE_STATUS_PAID"]').should('be.visible')
cy.get('[name="MOLLIE_MAIL_WHEN_PAID"]').should('exist')
cy.get('[name="MOLLIE_MAIL_WHEN_COMPLETED"]').should('exist')
cy.get('[name="MOLLIE_STATUS_COMPLETED"]').should('exist')
cy.get('[name="MOLLIE_MAIL_WHEN_CANCELED"]').should('exist')
cy.get('[name="MOLLIE_STATUS_CANCELED"]').should('exist')
cy.get('[name="MOLLIE_MAIL_WHEN_EXPIRED"]').should('exist')
cy.get('[name="MOLLIE_STATUS_EXPIRED"]').should('exist')
cy.get('[name="MOLLIE_MAIL_WHEN_REFUNDED"]').should('exist')
cy.get('[name="MOLLIE_STATUS_REFUNDED"]').should('exist')
cy.get('[name="MOLLIE_STATUS_OPEN"]').should('exist')
cy.get('[name="MOLLIE_MAIL_WHEN_SHIPPING"]').should('exist')
cy.get('[name="MOLLIE_STATUS_SHIPPING"]').should('exist')
cy.get('[name="MOLLIE_STATUS_PARTIAL_REFUND"]').should('exist')
cy.get('[name="MOLLIE_IMAGES"]').should('exist')
cy.get('[name="MOLLIE_CSS"]').should('exist')
cy.get('[id="MOLLIE_TRACKING_URLS__container"]').should('exist')
cy.get('[id="MOLLIE_AS_MAIN_info"]').should('exist')
cy.get('[id="MOLLIE_AS_STATUSES_info"]').should('exist')
cy.get('[name="MOLLIE_DISPLAY_ERRORS"]').should('exist')
cy.get('[name="MOLLIE_DEBUG_LOG"]').should('exist')
cy.advancedSettingsValidation()
cy.reload()
cy.matchImage(); // let's make a snapshot for visual regression testing later, if UI matches
//cy.window() will check if there are no Errors in console
});
it('C688472: Checking the Subscriptions tab, and console errors', () => {
cy.visit('/admin1/')
Expand All @@ -84,10 +58,7 @@ it('C688473: Checking the Subscriptions FAQ, and console errors', () => {
cy.visit('/admin1/')
cy.OpeningModuleDashboardURL()
cy.get('#subtab-AdminMollieSubscriptionFAQ').click()
cy.get(':nth-child(2) > .col-lg-12 > .card').should('be.visible')
cy.get(':nth-child(3) > .col-lg-12 > .card').should('be.visible')
cy.get(':nth-child(4) > .col-lg-12 > .card').should('be.visible')
cy.get(':nth-child(5) > .col-lg-12 > .card').should('be.visible')
cy.subscriptionsUiCheck()
cy.matchImage(); // let's make a snapshot for visual regression testing later, if UI matches
});
})
64 changes: 32 additions & 32 deletions cypress/e2e/ps1785/03_mollie.ps1785.PaymentTestsOrdersAPI.js
Original file line number Diff line number Diff line change
Expand Up @@ -338,43 +338,43 @@ it('C1860461: Pay with Klarna UK Order Shipping, Refunding [Orders API]', () =>
})
// TODO - some reported possible bugs in the workflow, but still continuing on completing the tests...
it.only('Blik Checkouting [Orders API]', () => {
cy.visit('/en/order-history')
// switching the currency
cy.pause()
cy.contains('Reorder').click()
cy.contains('UK').click({force:true})
//Billing country LT, DE etc.
cy.get('.clearfix > .btn').click()
cy.get('#js-delivery > .continue').click()
//Payment method choosing
cy.contains('Blik').click({force:true})
cy.get('.condition-label > .js-terms').click({force:true})
cy.contains('Place order').click()
cy.get('[value="authorized"]').click()
cy.get('[class="button form__button"]').click()
cy.get('#content-hook_order_confirmation > .card-block').should('be.visible')
cy.visit('/en/order-history')
// switching the currency
cy.pause()
cy.contains('Reorder').click()
cy.contains('UK').click({force:true})
//Billing country LT, DE etc.
cy.get('.clearfix > .btn').click()
cy.get('#js-delivery > .continue').click()
//Payment method choosing
cy.contains('Blik').click({force:true})
cy.get('.condition-label > .js-terms').click({force:true})
cy.contains('Place order').click()
cy.get('[value="authorized"]').click()
cy.get('[class="button form__button"]').click()
cy.get('#content-hook_order_confirmation > .card-block').should('be.visible')
});
it.only('Blik Order Shipping, Refunding [Orders API]', () => {
cy.OrderShippingRefundingOrdersAPI()
cy.OrderShippingRefundingOrdersAPI()
})
it('TWINT Checkouting [Orders API]', () => {
cy.visit('/en/order-history')
// switching the currency
cy.pause()
cy.contains('Reorder').click()
cy.contains('UK').click({force:true})
//Billing country LT, DE etc.
cy.get('.clearfix > .btn').click()
cy.get('#js-delivery > .continue').click()
//Payment method choosing
cy.contains('TWINT').click({force:true})
cy.get('.condition-label > .js-terms').click({force:true})
cy.contains('Place order').click()
cy.get('[value="authorized"]').click()
cy.get('[class="button form__button"]').click()
cy.get('#content-hook_order_confirmation > .card-block').should('be.visible')
cy.visit('/en/order-history')
// switching the currency
cy.pause()
cy.contains('Reorder').click()
cy.contains('UK').click({force:true})
//Billing country LT, DE etc.
cy.get('.clearfix > .btn').click()
cy.get('#js-delivery > .continue').click()
//Payment method choosing
cy.contains('TWINT').click({force:true})
cy.get('.condition-label > .js-terms').click({force:true})
cy.contains('Place order').click()
cy.get('[value="authorized"]').click()
cy.get('[class="button form__button"]').click()
cy.get('#content-hook_order_confirmation > .card-block').should('be.visible')
});
it('TWINT Order Shipping, Refunding [Orders API]', () => {
cy.OrderShippingRefundingOrdersAPI()
cy.OrderShippingRefundingOrdersAPI()
})
})
Loading
Loading