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:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-07 00:10:07 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-07 00:10:07 +0300
commit454973238cb3eed58f7d901b87ceb29acf6febbd (patch)
tree340dd978fd9df37553733b3244383c4bc9b3ceea /spec/frontend/repository
parent52dbfea964ea55b3393dc4146e541bc651f7e9e3 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/repository')
-rw-r--r--spec/frontend/repository/components/blob_content_viewer_spec.js102
-rw-r--r--spec/frontend/repository/pages/blob_spec.js4
2 files changed, 85 insertions, 21 deletions
diff --git a/spec/frontend/repository/components/blob_content_viewer_spec.js b/spec/frontend/repository/components/blob_content_viewer_spec.js
index b4204b434e2..fbc47a106d1 100644
--- a/spec/frontend/repository/components/blob_content_viewer_spec.js
+++ b/spec/frontend/repository/components/blob_content_viewer_spec.js
@@ -5,9 +5,10 @@ import BlobHeader from '~/blob/components/blob_header.vue';
import BlobContentViewer from '~/repository/components/blob_content_viewer.vue';
let wrapper;
-const mockData = {
+const simpleMockData = {
name: 'some_file.js',
size: 123,
+ rawSize: 123,
rawTextBlob: 'raw content',
type: 'text',
fileType: 'text',
@@ -29,15 +30,26 @@ const mockData = {
fileType: 'text',
tooLarge: false,
type: 'simple',
+ renderError: null,
},
richViewer: null,
};
+const richMockData = {
+ ...simpleMockData,
+ richViewer: {
+ fileType: 'markup',
+ tooLarge: false,
+ type: 'rich',
+ renderError: null,
+ },
+};
-function factory(path, loading = false) {
+function factory({ props = {}, mockData = {} } = {}, loading = false) {
wrapper = shallowMount(BlobContentViewer, {
propsData: {
- path,
+ path: 'some_file.js',
projectPath: 'some/path',
+ ...props,
},
mocks: {
$apollo: {
@@ -50,7 +62,7 @@ function factory(path, loading = false) {
},
});
- wrapper.setData({ blobInfo: mockData });
+ wrapper.setData(mockData);
}
describe('Blob content viewer component', () => {
@@ -58,34 +70,84 @@ describe('Blob content viewer component', () => {
const findBlobHeader = () => wrapper.find(BlobHeader);
const findBlobContent = () => wrapper.find(BlobContent);
- afterEach(() => {
- wrapper.destroy();
+ beforeEach(() => {
+ factory({ mockData: { blobInfo: simpleMockData } });
});
- beforeEach(() => {
- factory('some_file.js');
+ afterEach(() => {
+ wrapper.destroy();
});
it('renders a GlLoadingIcon component', () => {
- factory('some_file.js', true);
+ factory({ mockData: { blobInfo: simpleMockData } }, true);
expect(findLoadingIcon().exists()).toBe(true);
});
- it('renders a BlobHeader component', () => {
- expect(findBlobHeader().exists()).toBe(true);
+ describe('simple viewer', () => {
+ it('renders a BlobHeader component', () => {
+ expect(findBlobHeader().props('activeViewerType')).toEqual('simple');
+ expect(findBlobHeader().props('hasRenderError')).toEqual(false);
+ expect(findBlobHeader().props('hideViewerSwitcher')).toEqual(true);
+ expect(findBlobHeader().props('blob')).toEqual(simpleMockData);
+ });
+
+ it('renders a BlobContent 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,
+ type: 'simple',
+ renderError: null,
+ });
+ });
});
- it('renders a BlobContent component', () => {
- expect(findBlobContent().exists()).toBe(true);
+ describe('rich viewer', () => {
+ beforeEach(() => {
+ factory({
+ mockData: { blobInfo: richMockData, activeViewerType: 'rich' },
+ });
+ });
+
+ it('renders a BlobHeader component', () => {
+ expect(findBlobHeader().props('activeViewerType')).toEqual('rich');
+ expect(findBlobHeader().props('hasRenderError')).toEqual(false);
+ expect(findBlobHeader().props('hideViewerSwitcher')).toEqual(false);
+ expect(findBlobHeader().props('blob')).toEqual(richMockData);
+ });
+
+ it('renders a BlobContent 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: 'markup',
+ tooLarge: false,
+ type: 'rich',
+ renderError: null,
+ });
+ });
+
+ it('updates viewer type when viewer changed is clicked', async () => {
+ expect(findBlobContent().props('activeViewer')).toEqual(
+ expect.objectContaining({
+ type: 'rich',
+ }),
+ );
+ expect(findBlobHeader().props('activeViewerType')).toEqual('rich');
+
+ findBlobHeader().vm.$emit('viewer-changed', 'simple');
+ await wrapper.vm.$nextTick();
- 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,
- type: 'simple',
+ expect(findBlobHeader().props('activeViewerType')).toEqual('simple');
+ expect(findBlobContent().props('activeViewer')).toEqual(
+ expect.objectContaining({
+ type: 'simple',
+ }),
+ );
});
});
});
diff --git a/spec/frontend/repository/pages/blob_spec.js b/spec/frontend/repository/pages/blob_spec.js
index 74338777376..41ab4d616b8 100644
--- a/spec/frontend/repository/pages/blob_spec.js
+++ b/spec/frontend/repository/pages/blob_spec.js
@@ -11,7 +11,9 @@ describe('Repository blob page component', () => {
const path = 'file.js';
beforeEach(() => {
- wrapper = shallowMount(BlobPage, { propsData: { path, projectPath: 'some/path' } });
+ wrapper = shallowMount(BlobPage, {
+ propsData: { path, projectPath: 'some/path' },
+ });
});
afterEach(() => {