diff --git a/src/generic/hooks/tests/hooks.test.tsx b/src/generic/hooks/tests/hooks.test.tsx index 1e8b65bcbe..f44cf72ba2 100644 --- a/src/generic/hooks/tests/hooks.test.tsx +++ b/src/generic/hooks/tests/hooks.test.tsx @@ -147,8 +147,15 @@ describe('useIframeBehavior', () => { window.dispatchEvent(new MessageEvent('message', message)); }); - expect(window.scrollTo).toHaveBeenCalledWith({ top: 175, left: 0, behavior: 'smooth' }); - expect(window.scrollY).toBe(100 + document.getElementsByName('xblock-iframe')[0].offsetTop + document.getElementsByName('xblock-iframe')[0]!.parentElement!.offsetTop); + expect(window.scrollTo).toHaveBeenCalledWith({ + top: 150, // The offset does not include the parent element offset + left: 0, + behavior: 'smooth', + }); + expect(window.scrollY).toBe( + 100 // Component offset + + document.getElementsByName('xblock-iframe')[0].offsetTop, // iframe offset + ); }); it('handles offset message correctly', () => { diff --git a/src/generic/hooks/useIframeBehavior.tsx b/src/generic/hooks/useIframeBehavior.tsx index 6262668610..14df659147 100644 --- a/src/generic/hooks/useIframeBehavior.tsx +++ b/src/generic/hooks/useIframeBehavior.tsx @@ -87,7 +87,7 @@ export const useIframeBehavior = ({ if (document.getElementsByName('xblock-iframe')) { const iframeElement = document.getElementsByName('xblock-iframe')[0]; window.scrollTo({ - top: data.offset + iframeElement!.offsetTop + iframeElement.parentElement!.offsetTop, + top: data.offset + iframeElement!.offsetTop, left: 0, behavior: 'smooth', });