[FIX] website_sale: add test for cart popover
This commit adds a tour that checks if the cart popover works correctly. task_id=2964010 closes odoo/odoo#99583 Signed-off-by: William Braeckman (wbr) <wbr@odoo.com>
This commit is contained in:
@@ -65,11 +65,12 @@ publicWidget.registry.websiteSaleCartLink = publicWidget.Widget.extend({
|
||||
* @param {Event} ev
|
||||
*/
|
||||
_onMouseEnter: function (ev) {
|
||||
var self = this;
|
||||
let self = this;
|
||||
self.hovered = true;
|
||||
clearTimeout(timeout);
|
||||
$(this.selector).not(ev.currentTarget).popover('hide');
|
||||
timeout = setTimeout(function () {
|
||||
if (!self.$el.is(':hover') || $('.mycart-popover:visible').length) {
|
||||
if (!self.hovered || $('.mycart-popover:visible').length) {
|
||||
return;
|
||||
}
|
||||
self._popoverRPC = $.get("/shop/cart", {
|
||||
@@ -93,7 +94,8 @@ publicWidget.registry.websiteSaleCartLink = publicWidget.Widget.extend({
|
||||
* @param {Event} ev
|
||||
*/
|
||||
_onMouseLeave: function (ev) {
|
||||
var self = this;
|
||||
let self = this;
|
||||
self.hovered = false;
|
||||
setTimeout(function () {
|
||||
if ($('.popover:hover').length) {
|
||||
return;
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import tour from 'web_tour.tour';
|
||||
import wTourUtils from 'website.tour_utils';
|
||||
|
||||
tour.register('website_sale_cart_popover_tour', {
|
||||
test: true,
|
||||
url: '/shop/chair-floor-protection-29',
|
||||
},
|
||||
[
|
||||
wTourUtils.clickOnElement('Add to Cart', '#product_detail form[action^="/shop/cart/update"] #add_to_cart'),
|
||||
{
|
||||
content: "hover on cart popover",
|
||||
trigger: '#top_menu a[href$="/shop/cart"]',
|
||||
run: () => {
|
||||
$('#top_menu a[href$="/shop/cart"]').mouseenter();
|
||||
},
|
||||
},
|
||||
{
|
||||
content: "check that popover is visible",
|
||||
trigger: '.mycart-popover:visible',
|
||||
run: () => {},
|
||||
},
|
||||
// Trigger mouseleave to close the popover
|
||||
{
|
||||
content: "hover on cart popover",
|
||||
trigger: '#top_menu a[href$="/shop/cart"]',
|
||||
run: () => {
|
||||
$('#top_menu a[href$="/shop/cart"]').mouseleave();
|
||||
},
|
||||
},
|
||||
// Check that popover is not visible
|
||||
{
|
||||
content: "check that popover is not visible",
|
||||
trigger: ':not(.mycart-popover:visible)',
|
||||
run: () => {},
|
||||
},
|
||||
]
|
||||
);
|
||||
@@ -7,6 +7,7 @@ from . import test_sale_process
|
||||
from . import test_sitemap
|
||||
from . import test_website_sale_add_to_cart_snippet
|
||||
from . import test_website_sale_cart_abandoned
|
||||
from . import test_website_sale_cart_popover
|
||||
from . import test_website_sale_cart_recovery
|
||||
from . import test_website_sale_cart
|
||||
from . import test_website_sale_mail
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.tests import tagged
|
||||
from odoo.tests.common import HttpCase
|
||||
|
||||
|
||||
@tagged('post_install', '-at_install')
|
||||
class TestWebsiteSaleCartPopover(HttpCase):
|
||||
|
||||
def test_website_sale_cart_popover(self):
|
||||
self.start_tour("/", 'website_sale_cart_popover_tour', login="admin")
|
||||
Reference in New Issue
Block a user