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:
Diffstat (limited to 'spec/frontend/pages/shared/wikis/components/wiki_more_dropdown_spec.js')
-rw-r--r--spec/frontend/pages/shared/wikis/components/wiki_more_dropdown_spec.js83
1 files changed, 83 insertions, 0 deletions
diff --git a/spec/frontend/pages/shared/wikis/components/wiki_more_dropdown_spec.js b/spec/frontend/pages/shared/wikis/components/wiki_more_dropdown_spec.js
new file mode 100644
index 00000000000..830377ff39f
--- /dev/null
+++ b/spec/frontend/pages/shared/wikis/components/wiki_more_dropdown_spec.js
@@ -0,0 +1,83 @@
+import { GlDisclosureDropdown, GlDisclosureDropdownItem } from '@gitlab/ui';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import WikiMoreDropdown from '~/pages/shared/wikis/components/wiki_more_dropdown.vue';
+import printMarkdownDom from '~/lib/print_markdown_dom';
+
+jest.mock('~/lib/print_markdown_dom');
+
+describe('pages/shared/wikis/components/wiki_more_dropdown', () => {
+ let wrapper;
+
+ const createComponent = (provide) => {
+ wrapper = shallowMountExtended(WikiMoreDropdown, {
+ provide: {
+ history: 'https://history.url/path',
+ print: {
+ target: '#content-body',
+ title: 'test title',
+ stylesheet: [],
+ },
+ ...provide,
+ },
+ stubs: {
+ GlDisclosureDropdown,
+ GlDisclosureDropdownItem,
+ },
+ });
+ };
+
+ const findHistoryItem = () => wrapper.findByTestId('page-history-button');
+ const findPrintItem = () => wrapper.findByTestId('page-print-button');
+
+ describe('history', () => {
+ it('renders if `history` is set', () => {
+ createComponent({ history: false });
+
+ expect(findHistoryItem().exists()).toBe(false);
+
+ createComponent();
+
+ expect(findHistoryItem().exists()).toBe(true);
+ });
+
+ it('should have history page url', () => {
+ createComponent();
+
+ expect(findHistoryItem().attributes('href')).toBe('https://history.url/path');
+ });
+ });
+
+ describe('print', () => {
+ beforeEach(() => {
+ document.body.innerHTML = '<div id="content-body">Content</div>';
+ });
+
+ afterEach(() => {
+ document.body.innerHTML = '';
+ });
+
+ it('renders if `print` is set', () => {
+ createComponent({ print: false });
+
+ expect(findPrintItem().exists()).toBe(false);
+
+ createComponent();
+
+ expect(findPrintItem().exists()).toBe(true);
+ });
+
+ it('should print the content', () => {
+ createComponent();
+
+ expect(findPrintItem().exists()).toBe(true);
+
+ findPrintItem().trigger('click');
+
+ expect(printMarkdownDom).toHaveBeenCalledWith({
+ target: document.querySelector('#content-body'),
+ title: 'test title',
+ stylesheet: [],
+ });
+ });
+ });
+});