From b757ea24c3cd2892b46f6ad901d4571332020e8a Mon Sep 17 00:00:00 2001 From: "Soare Robert Daniel (Mac 2023)" Date: Thu, 25 Apr 2024 11:13:48 +0300 Subject: [PATCH 1/3] fix: add proxy class to enqueue resources for Secondary Menu --- .../components/component-nav-secondary.php | 1 + inc/views/secondary_nav_walker.php | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 inc/views/secondary_nav_walker.php diff --git a/header-footer-grid/templates/components/component-nav-secondary.php b/header-footer-grid/templates/components/component-nav-secondary.php index 5a1853221b..051e38b84d 100644 --- a/header-footer-grid/templates/components/component-nav-secondary.php +++ b/header-footer-grid/templates/components/component-nav-secondary.php @@ -34,6 +34,7 @@ 'fallback_cb' => '__return_false', 'before' => '
', 'after' => '
', + 'walker' => '\Neve\Views\Secondary_Nav_Walker', ) ); ?> diff --git a/inc/views/secondary_nav_walker.php b/inc/views/secondary_nav_walker.php new file mode 100644 index 0000000000..29a5531892 --- /dev/null +++ b/inc/views/secondary_nav_walker.php @@ -0,0 +1,26 @@ + + * Created on: 25/04/2024 + * + * @package Neve\Views + */ + +namespace Neve\Views; + +/** + * Class Secondary_Nav_Walker + * + * @package Neve\Views + */ +class Secondary_Nav_Walker extends Nav_Walker { + + /** + * Secondary_Nav_Walker constructor. + */ + public function __construct() { + add_action( 'neve_after_header_wrapper_hook', [ $this, 'inline_style_for_sidebar' ], 9 ); + } +} From b908892e1644c7d0cbebd8c80fea27cb0a0a5f39 Mon Sep 17 00:00:00 2001 From: "Soare Robert Daniel (Mac 2023)" Date: Mon, 20 May 2024 15:04:38 +0300 Subject: [PATCH 2/3] chore: add E2E test --- .../hfg/hfg-secondary-menu-component.json | 13 ++++++++++++ .../hfg/hgf-secondary-menu-component.spec.ts | 21 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 e2e-tests/fixtures/customizer/hfg/hfg-secondary-menu-component.json create mode 100644 e2e-tests/specs/customizer/hfg/hgf-secondary-menu-component.spec.ts diff --git a/e2e-tests/fixtures/customizer/hfg/hfg-secondary-menu-component.json b/e2e-tests/fixtures/customizer/hfg/hfg-secondary-menu-component.json new file mode 100644 index 0000000000..a2cb986021 --- /dev/null +++ b/e2e-tests/fixtures/customizer/hfg/hfg-secondary-menu-component.json @@ -0,0 +1,13 @@ +{ + "neve_ran_builder_migration": true, + "neve_migrated_builders": true, + "neve_ran_migrations": true, + "neve_had_old_skin": true, + "neve_migrated_hfg_colors": true, + "nav_menu_locations": { + "primary": 176 + }, + "header_palette_switch_icon_size": "{\"mobile\":16,\"tablet\":16,\"desktop\":44}", + "hfg_header_layout_v2": "{\"desktop\":{\"top\":{\"left\":[],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[{\"id\":\"secondary-menu\"}]},\"main\":{\"left\":[{\"id\":\"logo\"}],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[]},\"bottom\":{\"left\":[],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[]}},\"mobile\":{\"top\":{\"left\":[],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[]},\"main\":{\"left\":[{\"id\":\"logo\"}],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[{\"id\":\"nav-icon\"}]},\"bottom\":{\"left\":[],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[]},\"sidebar\":[{\"id\":\"secondary-menu\"}]}}\";}", + "neve_new_skin": "new" +} diff --git a/e2e-tests/specs/customizer/hfg/hgf-secondary-menu-component.spec.ts b/e2e-tests/specs/customizer/hfg/hgf-secondary-menu-component.spec.ts new file mode 100644 index 0000000000..2ed572270f --- /dev/null +++ b/e2e-tests/specs/customizer/hfg/hgf-secondary-menu-component.spec.ts @@ -0,0 +1,21 @@ +import { test, expect } from '@playwright/test'; +import { setCustomizeSettings } from '../../../utils'; +import secondaryMenuSetup from '../../../fixtures/customizer/hfg/hfg-secondary-menu-component.json'; + +test.describe('Secondary Nav', async () => { + test('Only Secondary Nav', async ({ page, request, baseURL }) => { + await setCustomizeSettings('hfgSearchFormIcon', secondaryMenuSetup, { + request, + baseURL, + }); + await page.goto('/?test_name=hfgSecondaryNav'); + + await page.setViewportSize({ width: 375, height: 812 }); // Mobile Mode. + + await page.getByRole('button', { name: 'Navigation Menu' }).click(); + + await expect( + page.getByRole('link', { name: 'Sample Page' }) + ).toBeVisible(); // Secondary_Nav_Walker enqueues the necessary JS to make the menu work. + }); +}); From 423260514e4fe010646e9b0a7e9360c368a915db Mon Sep 17 00:00:00 2001 From: "Soare Robert Daniel (Mac 2023)" Date: Mon, 20 May 2024 15:25:37 +0300 Subject: [PATCH 3/3] chore: e2e test --- .../customizer/hfg/hfg-secondary-menu-component.json | 1 - .../customizer/hfg/hgf-secondary-menu-component.spec.ts | 6 ++---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/e2e-tests/fixtures/customizer/hfg/hfg-secondary-menu-component.json b/e2e-tests/fixtures/customizer/hfg/hfg-secondary-menu-component.json index a2cb986021..735da0c0e2 100644 --- a/e2e-tests/fixtures/customizer/hfg/hfg-secondary-menu-component.json +++ b/e2e-tests/fixtures/customizer/hfg/hfg-secondary-menu-component.json @@ -7,7 +7,6 @@ "nav_menu_locations": { "primary": 176 }, - "header_palette_switch_icon_size": "{\"mobile\":16,\"tablet\":16,\"desktop\":44}", "hfg_header_layout_v2": "{\"desktop\":{\"top\":{\"left\":[],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[{\"id\":\"secondary-menu\"}]},\"main\":{\"left\":[{\"id\":\"logo\"}],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[]},\"bottom\":{\"left\":[],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[]}},\"mobile\":{\"top\":{\"left\":[],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[]},\"main\":{\"left\":[{\"id\":\"logo\"}],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[{\"id\":\"nav-icon\"}]},\"bottom\":{\"left\":[],\"c-left\":[],\"center\":[],\"c-right\":[],\"right\":[]},\"sidebar\":[{\"id\":\"secondary-menu\"}]}}\";}", "neve_new_skin": "new" } diff --git a/e2e-tests/specs/customizer/hfg/hgf-secondary-menu-component.spec.ts b/e2e-tests/specs/customizer/hfg/hgf-secondary-menu-component.spec.ts index 2ed572270f..ed3adace73 100644 --- a/e2e-tests/specs/customizer/hfg/hgf-secondary-menu-component.spec.ts +++ b/e2e-tests/specs/customizer/hfg/hgf-secondary-menu-component.spec.ts @@ -3,7 +3,7 @@ import { setCustomizeSettings } from '../../../utils'; import secondaryMenuSetup from '../../../fixtures/customizer/hfg/hfg-secondary-menu-component.json'; test.describe('Secondary Nav', async () => { - test('Only Secondary Nav', async ({ page, request, baseURL }) => { + test('Mobile Sidebar Opening', async ({ page, request, baseURL }) => { await setCustomizeSettings('hfgSearchFormIcon', secondaryMenuSetup, { request, baseURL, @@ -14,8 +14,6 @@ test.describe('Secondary Nav', async () => { await page.getByRole('button', { name: 'Navigation Menu' }).click(); - await expect( - page.getByRole('link', { name: 'Sample Page' }) - ).toBeVisible(); // Secondary_Nav_Walker enqueues the necessary JS to make the menu work. + await expect(page.locator('#header-menu-sidebar-inner')).toBeVisible(); // Secondary_Nav_Walker enqueues the necessary JS to make the menu work. }); });