[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:
Alexandre de Pape (alpa)
2022-09-14 21:21:39 +02:00
parent 10dc2a4b9a
commit 5dd15f18d6
4 changed files with 57 additions and 3 deletions
@@ -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: () => {},
},
]
);
+1
View File
@@ -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")