From 790fe556c7af30a95837b5b37633068e85a21910 Mon Sep 17 00:00:00 2001 From: kpawelczak <42094017+kpawelczak@users.noreply.github.com> Date: Fri, 6 Dec 2024 11:54:40 +0100 Subject: [PATCH] fix: resolved the issue of infinite loading in SmartEdit when accessing the PDP (#19720) --- ...product-multi-dimensional-selector.guard.spec.ts | 13 ++++++++++++- .../product-multi-dimensional-selector.guard.ts | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/feature-libs/product-multi-dimensional/selector/components/guards/product-multi-dimensional-selector.guard.spec.ts b/feature-libs/product-multi-dimensional/selector/components/guards/product-multi-dimensional-selector.guard.spec.ts index b16d699b233..1aa82b438ba 100644 --- a/feature-libs/product-multi-dimensional/selector/components/guards/product-multi-dimensional-selector.guard.spec.ts +++ b/feature-libs/product-multi-dimensional/selector/components/guards/product-multi-dimensional-selector.guard.spec.ts @@ -37,15 +37,26 @@ describe('ProductMultiDimensionalSelectorGuard', () => { }); describe('canActivate', () => { - it('should return false if no product code is provided', () => { + it('should return false if no product code is provided and queryParams are empty', () => { const route = new ActivatedRouteSnapshot(); route.params = {}; + route.queryParams = {}; guard.canActivate(route).subscribe((result) => { expect(result).toBe(false); }); }); + it('should return true if no product code is provided and is in SmartEdit', () => { + const route = new ActivatedRouteSnapshot(); + route.params = {}; + route.queryParams = { cmsTicketId: '123' }; + + guard.canActivate(route).subscribe((result) => { + expect(result).toBe(true); + }); + }); + it('should return true if product is purchasable', () => { const route = new ActivatedRouteSnapshot(); route.params = { productCode: 'testProductCode' }; diff --git a/feature-libs/product-multi-dimensional/selector/components/guards/product-multi-dimensional-selector.guard.ts b/feature-libs/product-multi-dimensional/selector/components/guards/product-multi-dimensional-selector.guard.ts index 25d92f03e15..96dfeffb8b1 100644 --- a/feature-libs/product-multi-dimensional/selector/components/guards/product-multi-dimensional-selector.guard.ts +++ b/feature-libs/product-multi-dimensional/selector/components/guards/product-multi-dimensional-selector.guard.ts @@ -40,8 +40,10 @@ export class ProductMultiDimensionalSelectorGuard { activatedRoute: ActivatedRouteSnapshot ): Observable { const productCode = activatedRoute.params?.productCode; + if (!productCode) { - return of(false); + // Refuse entry unless it is within a SmartEdit environment + return of(!!activatedRoute.queryParams?.cmsTicketId); } return this.productService