-
+
diff --git a/spec/frontend/repository/components/blob_content_viewer_spec.js b/spec/frontend/repository/components/blob_content_viewer_spec.js
index a0d00ff9a7d3a04abdb20a82c7892ab187a5ab1d..b662a1d20a9a4727fac8ef2e76092d7a8239dccf 100644
--- a/spec/frontend/repository/components/blob_content_viewer_spec.js
+++ b/spec/frontend/repository/components/blob_content_viewer_spec.js
@@ -76,6 +76,7 @@ describe('Blob content viewer component', () => {
expect(findBlobContent().props('loading')).toEqual(false);
expect(findBlobContent().props('content')).toEqual('raw content');
+ expect(findBlobContent().props('isRawContent')).toBe(true);
expect(findBlobContent().props('activeViewer')).toEqual({
fileType: 'text',
tooLarge: false,
diff --git a/spec/frontend/repository/pages/blob_spec.js b/spec/frontend/repository/pages/blob_spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..3e7ead4ad00a8a955bf034b74843b9711a454850
--- /dev/null
+++ b/spec/frontend/repository/pages/blob_spec.js
@@ -0,0 +1,25 @@
+import { shallowMount } from '@vue/test-utils';
+import BlobContentViewer from '~/repository/components/blob_content_viewer.vue';
+import BlobPage from '~/repository/pages/blob.vue';
+
+jest.mock('~/repository/utils/dom');
+
+describe('Repository blob page component', () => {
+ let wrapper;
+
+ const findBlobContentViewer = () => wrapper.find(BlobContentViewer);
+ const path = 'file.js';
+
+ beforeEach(() => {
+ wrapper = shallowMount(BlobPage, { propsData: { path } });
+ });
+
+ afterEach(() => {
+ wrapper.destroy();
+ });
+
+ it('has a Blob Content Viewer component', () => {
+ expect(findBlobContentViewer().exists()).toBe(true);
+ expect(findBlobContentViewer().props('path')).toBe(path);
+ });
+});
diff --git a/spec/frontend/vue_shared/components/blob_viewers/__snapshots__/simple_viewer_spec.js.snap b/spec/frontend/vue_shared/components/blob_viewers/__snapshots__/simple_viewer_spec.js.snap
index 023895099b1df6aab99becbe6b94fec4aa3c3363..0eae69c483e7b4e9494cbe7f3b6ce38ff1f272c7 100644
--- a/spec/frontend/vue_shared/components/blob_viewers/__snapshots__/simple_viewer_spec.js.snap
+++ b/spec/frontend/vue_shared/components/blob_viewers/__snapshots__/simple_viewer_spec.js.snap
@@ -1,87 +1,89 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Blob Simple Viewer component rendering matches the snapshot 1`] = `
-
+
-
-
+
+
-
-
- First
-
-
+
+ First
+
+
-
- Second
-
-
+
+ Second
+
+
-
- Third
-
-
-
+
+ Third
+
+
+
+
`;
diff --git a/spec/frontend/vue_shared/components/blob_viewers/simple_viewer_spec.js b/spec/frontend/vue_shared/components/blob_viewers/simple_viewer_spec.js
index 9a0616343feb9cca47252bb1d58d7d1d33e746d1..92a326efd832a1172bd034359b286c0386c8f868 100644
--- a/spec/frontend/vue_shared/components/blob_viewers/simple_viewer_spec.js
+++ b/spec/frontend/vue_shared/components/blob_viewers/simple_viewer_spec.js
@@ -1,13 +1,14 @@
import { shallowMount } from '@vue/test-utils';
import { HIGHLIGHT_CLASS_NAME } from '~/vue_shared/components/blob_viewers/constants';
import SimpleViewer from '~/vue_shared/components/blob_viewers/simple_viewer.vue';
+import EditorLite from '~/vue_shared/components/editor_lite.vue';
describe('Blob Simple Viewer component', () => {
let wrapper;
const contentMock = `
First\n
Second\n
Third`;
const blobHash = 'foo-bar';
- function createComponent(content = contentMock) {
+ function createComponent(content = contentMock, isRawContent = false) {
wrapper = shallowMount(SimpleViewer, {
provide: {
blobHash,
@@ -15,6 +16,8 @@ describe('Blob Simple Viewer component', () => {
propsData: {
content,
type: 'text',
+ fileName: 'test.js',
+ isRawContent,
},
});
}
@@ -83,4 +86,18 @@ describe('Blob Simple Viewer component', () => {
});
});
});
+
+ describe('raw content', () => {
+ const findEditorLite = () => wrapper.find(EditorLite);
+ const isRawContent = true;
+
+ it('uses the Editor Lite component in readonly mode when viewing raw content', () => {
+ createComponent('raw content', isRawContent);
+
+ expect(findEditorLite().exists()).toBe(true);
+ expect(findEditorLite().props('value')).toBe('raw content');
+ expect(findEditorLite().props('fileName')).toBe('test.js');
+ expect(findEditorLite().props('editorOptions')).toEqual({ readOnly: true });
+ });
+ });
});