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/issuable/popover/index_spec.js')
-rw-r--r--spec/frontend/issuable/popover/index_spec.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/spec/frontend/issuable/popover/index_spec.js b/spec/frontend/issuable/popover/index_spec.js
new file mode 100644
index 00000000000..b1aa7f0f0b0
--- /dev/null
+++ b/spec/frontend/issuable/popover/index_spec.js
@@ -0,0 +1,53 @@
+import { setHTMLFixture } from 'helpers/fixtures';
+import * as createDefaultClient from '~/lib/graphql';
+import initIssuablePopovers from '~/issuable/popover/index';
+
+createDefaultClient.default = jest.fn();
+
+describe('initIssuablePopovers', () => {
+ let mr1;
+ let mr2;
+ let mr3;
+ let issue1;
+
+ beforeEach(() => {
+ setHTMLFixture(`
+ <div id="one" class="gfm-merge_request" data-mr-title="title" data-iid="1" data-project-path="group/project" data-reference-type="merge_request">
+ MR1
+ </div>
+ <div id="two" class="gfm-merge_request" title="title" data-iid="1" data-project-path="group/project" data-reference-type="merge_request">
+ MR2
+ </div>
+ <div id="three" class="gfm-merge_request">
+ MR3
+ </div>
+ <div id="four" class="gfm-issue" title="title" data-iid="1" data-project-path="group/project" data-reference-type="issue">
+ MR3
+ </div>
+ `);
+
+ mr1 = document.querySelector('#one');
+ mr2 = document.querySelector('#two');
+ mr3 = document.querySelector('#three');
+ issue1 = document.querySelector('#four');
+
+ mr1.addEventListener = jest.fn();
+ mr2.addEventListener = jest.fn();
+ mr3.addEventListener = jest.fn();
+ issue1.addEventListener = jest.fn();
+ });
+
+ it('does not add the same event listener twice', () => {
+ initIssuablePopovers([mr1, mr1, mr2, issue1]);
+
+ expect(mr1.addEventListener).toHaveBeenCalledTimes(1);
+ expect(mr2.addEventListener).toHaveBeenCalledTimes(1);
+ expect(issue1.addEventListener).toHaveBeenCalledTimes(1);
+ });
+
+ it('does not add listener if it does not have the necessary data attributes', () => {
+ initIssuablePopovers([mr1, mr2, mr3]);
+
+ expect(mr3.addEventListener).not.toHaveBeenCalled();
+ });
+});