diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-20 09:07:57 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-20 09:07:57 +0000 |
commit | 7881eb30eaa8b01dbcfe87faa09927c75c7d6e45 (patch) | |
tree | 298bc8d2c62b2f2c29cb8ecbcf3de3eaaa6466d9 /spec/frontend/error_tracking/components/stacktrace_entry_spec.js | |
parent | 64b66e0cb6d1bfd27abf24e06653f00bddb60597 (diff) | |
download | gitlab-ce-7881eb30eaa8b01dbcfe87faa09927c75c7d6e45.tar.gz |
Add latest changes from gitlab-org/gitlab@12-6-stable-ee
Diffstat (limited to 'spec/frontend/error_tracking/components/stacktrace_entry_spec.js')
-rw-r--r-- | spec/frontend/error_tracking/components/stacktrace_entry_spec.js | 56 |
1 files changed, 42 insertions, 14 deletions
diff --git a/spec/frontend/error_tracking/components/stacktrace_entry_spec.js b/spec/frontend/error_tracking/components/stacktrace_entry_spec.js index 95958408770..942585d5370 100644 --- a/spec/frontend/error_tracking/components/stacktrace_entry_spec.js +++ b/spec/frontend/error_tracking/components/stacktrace_entry_spec.js @@ -7,26 +7,23 @@ import Icon from '~/vue_shared/components/icon.vue'; describe('Stacktrace Entry', () => { let wrapper; + const lines = [ + [22, ' def safe_thread(name, \u0026block)\n'], + [23, ' Thread.new do\n'], + [24, " Thread.current['sidekiq_label'] = name\n"], + [25, ' watchdog(name, \u0026block)\n'], + ]; + function mountComponent(props) { wrapper = shallowMount(StackTraceEntry, { propsData: { filePath: 'sidekiq/util.rb', - lines: [ - [22, ' def safe_thread(name, \u0026block)\n'], - [23, ' Thread.new do\n'], - [24, " Thread.current['sidekiq_label'] = name\n"], - [25, ' watchdog(name, \u0026block)\n'], - ], errorLine: 24, ...props, }, }); } - beforeEach(() => { - mountComponent(); - }); - afterEach(() => { if (wrapper) { wrapper.destroy(); @@ -34,16 +31,47 @@ describe('Stacktrace Entry', () => { }); it('should render stacktrace entry collapsed', () => { + mountComponent({ lines }); expect(wrapper.find(StackTraceEntry).exists()).toBe(true); expect(wrapper.find(ClipboardButton).exists()).toBe(true); expect(wrapper.find(Icon).exists()).toBe(true); expect(wrapper.find(FileIcon).exists()).toBe(true); - expect(wrapper.element.querySelectorAll('table').length).toBe(0); + expect(wrapper.find('table').exists()).toBe(false); }); it('should render stacktrace entry table expanded', () => { - mountComponent({ expanded: true }); - expect(wrapper.element.querySelectorAll('tr.line_holder').length).toBe(4); - expect(wrapper.element.querySelectorAll('.line_content.old').length).toBe(1); + mountComponent({ expanded: true, lines }); + expect(wrapper.find('table').exists()).toBe(true); + expect(wrapper.findAll('tr.line_holder').length).toBe(4); + expect(wrapper.findAll('.line_content.old').length).toBe(1); + }); + + describe('no code block', () => { + const findFileHeaderContent = () => wrapper.find('.file-header-content').html(); + + it('should hide collapse icon and render error fn name and error line when there is no code block', () => { + const extraInfo = { errorLine: 34, errorFn: 'errorFn', errorColumn: 77 }; + mountComponent({ expanded: false, lines: [], ...extraInfo }); + expect(wrapper.find(Icon).exists()).toBe(false); + expect(findFileHeaderContent()).toContain( + `in ${extraInfo.errorFn} at line ${extraInfo.errorLine}:${extraInfo.errorColumn}`, + ); + }); + + it('should render only lineNo:columnNO when there is no errorFn ', () => { + const extraInfo = { errorLine: 34, errorFn: null, errorColumn: 77 }; + mountComponent({ expanded: false, lines: [], ...extraInfo }); + expect(findFileHeaderContent()).not.toContain(`in ${extraInfo.errorFn}`); + expect(findFileHeaderContent()).toContain(`${extraInfo.errorLine}:${extraInfo.errorColumn}`); + }); + + it('should render only lineNo when there is no errorColumn ', () => { + const extraInfo = { errorLine: 34, errorFn: 'errorFn', errorColumn: null }; + mountComponent({ expanded: false, lines: [], ...extraInfo }); + expect(findFileHeaderContent()).toContain( + `in ${extraInfo.errorFn} at line ${extraInfo.errorLine}`, + ); + expect(findFileHeaderContent()).not.toContain(`:${extraInfo.errorColumn}`); + }); }); }); |