From 1b7b6db5fbd1c7acfb5e2cfe39e82c9049a701af Mon Sep 17 00:00:00 2001
From: Jacques <jerasmus@gitlab.com>
Date: Mon, 24 Jul 2023 11:19:59 +0200
Subject: [PATCH] Fix auto-scrolling to hash on Markdown files

Fixes scrolling to the URL hash when viewing Markdown files

Changelog: fixed
---
 .../vue_shared/components/blob_viewers/rich_viewer.vue      | 2 ++
 .../vue_shared/components/blob_viewers/rich_viewer_spec.js  | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/app/assets/javascripts/vue_shared/components/blob_viewers/rich_viewer.vue b/app/assets/javascripts/vue_shared/components/blob_viewers/rich_viewer.vue
index 3e24a35ea3905..2ecf686b1c38f 100644
--- a/app/assets/javascripts/vue_shared/components/blob_viewers/rich_viewer.vue
+++ b/app/assets/javascripts/vue_shared/components/blob_viewers/rich_viewer.vue
@@ -2,6 +2,7 @@
 import SafeHtml from '~/vue_shared/directives/safe_html';
 import { handleBlobRichViewer } from '~/blob/viewer';
 import MarkdownFieldView from '~/vue_shared/components/markdown/field_view.vue';
+import { handleLocationHash } from '~/lib/utils/common_utils';
 import ViewerMixin from './mixins';
 
 export default {
@@ -27,6 +28,7 @@ export default {
       this.isLoading = false;
       await this.$nextTick();
       handleBlobRichViewer(this.$refs.content, this.type);
+      handleLocationHash();
     });
   },
   safeHtmlConfig: {
diff --git a/spec/frontend/vue_shared/components/blob_viewers/rich_viewer_spec.js b/spec/frontend/vue_shared/components/blob_viewers/rich_viewer_spec.js
index 1f3029435eee0..fc8155bd38195 100644
--- a/spec/frontend/vue_shared/components/blob_viewers/rich_viewer_spec.js
+++ b/spec/frontend/vue_shared/components/blob_viewers/rich_viewer_spec.js
@@ -3,8 +3,10 @@ import { shallowMount } from '@vue/test-utils';
 import { handleBlobRichViewer } from '~/blob/viewer';
 import RichViewer from '~/vue_shared/components/blob_viewers/rich_viewer.vue';
 import MarkdownFieldView from '~/vue_shared/components/markdown/field_view.vue';
+import { handleLocationHash } from '~/lib/utils/common_utils';
 
 jest.mock('~/blob/viewer');
+jest.mock('~/lib/utils/common_utils');
 
 describe('Blob Rich Viewer component', () => {
   let wrapper;
@@ -50,4 +52,8 @@ describe('Blob Rich Viewer component', () => {
   it('is using Markdown View Field', () => {
     expect(wrapper.findComponent(MarkdownFieldView).exists()).toBe(true);
   });
+
+  it('scrolls to the hash location', () => {
+    expect(handleLocationHash).toHaveBeenCalled();
+  });
 });
-- 
GitLab