diff --git a/spec/frontend/repository/components/blob_content_viewer_spec.js b/spec/frontend/repository/components/blob_content_viewer_spec.js
index c9fe6cafba096f912418b71563c099f39cac8250..e1ac46171bb10671fc19ba52c4d7b7de3dde27ad 100644
--- a/spec/frontend/repository/components/blob_content_viewer_spec.js
+++ b/spec/frontend/repository/components/blob_content_viewer_spec.js
@@ -13,6 +13,7 @@ import BlobContentViewer from '~/repository/components/blob_content_viewer.vue';
 import BlobEdit from '~/repository/components/blob_edit.vue';
 import { loadViewer, viewerProps } from '~/repository/components/blob_viewers';
 import DownloadViewer from '~/repository/components/blob_viewers/download_viewer.vue';
+import EmptyViewer from '~/repository/components/blob_viewers/empty_viewer.vue';
 import TextViewer from '~/repository/components/blob_viewers/text_viewer.vue';
 import blobInfoQuery from '~/repository/queries/blob_info.query.graphql';
 
@@ -124,8 +125,6 @@ describe('Blob content viewer component', () => {
   const findBlobEdit = () => wrapper.findComponent(BlobEdit);
   const findBlobContent = () => wrapper.findComponent(BlobContent);
   const findBlobButtonGroup = () => wrapper.findComponent(BlobButtonGroup);
-  const findTextViewer = () => wrapper.findComponent(TextViewer);
-  const findDownloadViewer = () => wrapper.findComponent(DownloadViewer);
 
   afterEach(() => {
     wrapper.destroy();
@@ -225,9 +224,9 @@ describe('Blob content viewer component', () => {
   });
 
   describe('Blob viewer', () => {
-    beforeEach(() => {
-      loadViewer.mockClear();
-      viewerProps.mockClear();
+    afterEach(() => {
+      loadViewer.mockRestore();
+      viewerProps.mockRestore();
     });
 
     it('does not render a BlobContent component if a Blob viewer is available', () => {
@@ -237,39 +236,36 @@ describe('Blob content viewer component', () => {
       expect(findBlobContent().exists()).toBe(false);
     });
 
-    it('renders a TextViewer for text files', () => {
-      loadViewer.mockReturnValueOnce(TextViewer);
-      viewerProps.mockReturnValueOnce({ content: 'test', fileName: 'test.js', readOnly: true });
-
-      factory({ mockData: { blobInfo: simpleMockData } });
-
-      expect(findTextViewer().exists()).toBe(true);
-    });
-
-    it('renders a DownloadViewer for download files', async () => {
-      loadViewer.mockReturnValue(DownloadViewer);
-      viewerProps.mockReturnValue({
-        filePath: '/some/file/path',
-        fileName: 'test.js',
-        fileSize: 100,
-      });
-
-      const downloadSimpleMockData = {
-        ...simpleMockData,
-        fileType: null,
-        simpleViewer: {
-          ...simpleMockData.simpleViewer,
-          fileType: 'download',
-        },
-      };
-
-      factory({ mockData: { blobInfo: downloadSimpleMockData } });
+    it.each`
+      viewer        | loadViewerReturnValue | viewerPropsReturnValue
+      ${'empty'}    | ${EmptyViewer}        | ${{}}
+      ${'download'} | ${DownloadViewer}     | ${{ filePath: '/some/file/path', fileName: 'test.js', fileSize: 100 }}
+      ${'text'}     | ${TextViewer}         | ${{ content: 'test', fileName: 'test.js', readOnly: true }}
+    `(
+      'renders viewer component for $viewer files',
+      async ({ viewer, loadViewerReturnValue, viewerPropsReturnValue }) => {
+        loadViewer.mockReturnValue(loadViewerReturnValue);
+        viewerProps.mockReturnValue(viewerPropsReturnValue);
+
+        factory({
+          mockData: {
+            blobInfo: {
+              ...simpleMockData,
+              fileType: null,
+              simpleViewer: {
+                ...simpleMockData.simpleViewer,
+                fileType: viewer,
+              },
+            },
+          },
+        });
 
-      await nextTick();
+        await nextTick();
 
-      expect(loadViewer).toHaveBeenCalledWith('download');
-      expect(findDownloadViewer().exists()).toBe(true);
-    });
+        expect(loadViewer).toHaveBeenCalledWith(viewer);
+        expect(wrapper.findComponent(loadViewerReturnValue).exists()).toBe(true);
+      },
+    );
   });
 
   describe('BlobHeader action slot', () => {