Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/lib/utils/resize_observer_spec.js')
-rw-r--r--spec/frontend/lib/utils/resize_observer_spec.js41
1 files changed, 28 insertions, 13 deletions
diff --git a/spec/frontend/lib/utils/resize_observer_spec.js b/spec/frontend/lib/utils/resize_observer_spec.js
index 419aff28935..6560562f204 100644
--- a/spec/frontend/lib/utils/resize_observer_spec.js
+++ b/spec/frontend/lib/utils/resize_observer_spec.js
@@ -19,16 +19,11 @@ describe('ResizeObserver Utility', () => {
jest.spyOn(document.documentElement, 'scrollTo');
- setFixtures(`<div id="content-body"><div class="target">element to scroll to</div></div>`);
+ setFixtures(`<div id="content-body"><div id="note_1234">note to scroll to</div></div>`);
- const target = document.querySelector('.target');
+ const target = document.querySelector('#note_1234');
jest.spyOn(target, 'getBoundingClientRect').mockReturnValue({ top: 200 });
-
- observer = scrollToTargetOnResize({
- target: '.target',
- container: '#content-body',
- });
});
afterEach(() => {
@@ -38,21 +33,22 @@ describe('ResizeObserver Utility', () => {
describe('Observer behavior', () => {
it('returns null for empty target', () => {
observer = scrollToTargetOnResize({
- target: '',
+ targetId: '',
container: '#content-body',
});
expect(observer).toBe(null);
});
- it('returns ResizeObserver instance', () => {
- expect(observer).toBeInstanceOf(ResizeObserver);
- });
+ it('does not scroll if target does not exist', () => {
+ observer = scrollToTargetOnResize({
+ targetId: 'some_imaginary_id',
+ container: '#content-body',
+ });
- it('scrolls body so anchor is just below sticky header (contentTop)', () => {
triggerResize();
- expect(document.documentElement.scrollTo).toHaveBeenCalledWith({ top: 110 });
+ expect(document.documentElement.scrollTo).not.toHaveBeenCalled();
});
const interactionEvents = ['mousedown', 'touchstart', 'keydown', 'wheel'];
@@ -64,5 +60,24 @@ describe('ResizeObserver Utility', () => {
expect(document.documentElement.scrollTo).not.toHaveBeenCalledWith();
});
+
+ describe('with existing target', () => {
+ beforeEach(() => {
+ observer = scrollToTargetOnResize({
+ targetId: 'note_1234',
+ container: '#content-body',
+ });
+ });
+
+ it('returns ResizeObserver instance', () => {
+ expect(observer).toBeInstanceOf(ResizeObserver);
+ });
+
+ it('scrolls body so anchor is just below sticky header (contentTop)', () => {
+ triggerResize();
+
+ expect(document.documentElement.scrollTo).toHaveBeenCalledWith({ top: 110 });
+ });
+ });
});
});