From 9308180089ddaa369cc83101229c16315462ce07 Mon Sep 17 00:00:00 2001 From: Saugat Pachhai Date: Tue, 14 May 2019 08:55:43 +0000 Subject: [PATCH] [ADD] website_sale_delivery: Add test for delivery 'free over' This commit adds a tour for the condition where the delivery charges, even though that was not added to the total charges, it was shown in the delivery charges aside (even if the payment was over the amount where free delivery was available). This adds a test that it should be "0.0" instead. This was tested before the fix and after the fix. --- .../src/js/website_free_delivery_tour.js | 36 +++++++++++++++++++ .../website_sale_delivery/tests/__init__.py | 4 +++ addons/website_sale_delivery/tests/test_ui.py | 14 ++++++++ .../views/website_sale_delivery_templates.xml | 6 ++++ 4 files changed, 60 insertions(+) create mode 100644 addons/website_sale_delivery/static/src/js/website_free_delivery_tour.js create mode 100644 addons/website_sale_delivery/tests/__init__.py create mode 100644 addons/website_sale_delivery/tests/test_ui.py diff --git a/addons/website_sale_delivery/static/src/js/website_free_delivery_tour.js b/addons/website_sale_delivery/static/src/js/website_free_delivery_tour.js new file mode 100644 index 00000000000..f6e68d66b25 --- /dev/null +++ b/addons/website_sale_delivery/static/src/js/website_free_delivery_tour.js @@ -0,0 +1,36 @@ +odoo.define('website_sale_delivery.tour', function (require) { +'use strict'; + +var base = require('web_editor.base'); +var tour = require("web_tour.tour"); + +tour.register('check_free_delivery', { + test: true, + url: '/shop?search=conference chair', + wait_for: base.ready(), +}, + [ + { + content: "select conference chair", + trigger: '.oe_product_cart:first a:contains("Conference Chair")', + }, + { + content: "click on add to cart", + extra_trigger: 'label:contains(Steel) input:propChecked', + trigger: '#product_detail form[action^="/shop/cart/update"] .btn-primary', + }, + { + content: "click in modal on 'Proceed to checkout' button", + trigger: 'button:contains("Proceed to Checkout")', + }, + { + content: "go to checkout", + extra_trigger: '#cart_products input.js_quantity:propValue(1)', + trigger: 'a[href*="/shop/checkout"]', + }, + { + content: "Check Free Delivery value to be zero", + trigger: "#delivery_carrier span:contains('0.0')" + }, + ]); +}); diff --git a/addons/website_sale_delivery/tests/__init__.py b/addons/website_sale_delivery/tests/__init__.py new file mode 100644 index 00000000000..2235dde4188 --- /dev/null +++ b/addons/website_sale_delivery/tests/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import test_ui diff --git a/addons/website_sale_delivery/tests/test_ui.py b/addons/website_sale_delivery/tests/test_ui.py new file mode 100644 index 00000000000..74b73e47b36 --- /dev/null +++ b/addons/website_sale_delivery/tests/test_ui.py @@ -0,0 +1,14 @@ +import odoo.tests +# Part of Odoo. See LICENSE file for full copyright and licensing details. + + +@odoo.tests.tagged('post_install', '-at_install') +class TestUi(odoo.tests.HttpCase): + + def test_01_free_delivery_when_exceed_threshold(self): + self.env.ref("delivery.free_delivery_carrier").write({ + 'fixed_price': 2, + 'free_over': True, + 'amount': 10, + }) + self.phantom_js("/web", "odoo.__DEBUG__.services['web_tour.tour'].run('check_free_delivery')", "odoo.__DEBUG__.services['web_tour.tour'].tours.check_free_delivery.ready", login="admin") diff --git a/addons/website_sale_delivery/views/website_sale_delivery_templates.xml b/addons/website_sale_delivery/views/website_sale_delivery_templates.xml index 59f3c72f42c..c8f29137cc2 100644 --- a/addons/website_sale_delivery/views/website_sale_delivery_templates.xml +++ b/addons/website_sale_delivery/views/website_sale_delivery_templates.xml @@ -22,6 +22,12 @@ + +