summaryrefslogtreecommitdiff
path: root/spec/frontend/snippets_spec.js
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-12-11 15:07:38 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-12-11 15:07:38 +0000
commit4eea104c69e59f6fa53c7bc15b986c69f29b60c8 (patch)
tree2eff1ce7ac4a58de15b1f5980acfdb22c7b92ac0 /spec/frontend/snippets_spec.js
parentb86f474bf51e20d2db4cf0895d0a8e0894e31c08 (diff)
downloadgitlab-ce-4eea104c69e59f6fa53c7bc15b986c69f29b60c8.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/snippets_spec.js')
-rw-r--r--spec/frontend/snippets_spec.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/spec/frontend/snippets_spec.js b/spec/frontend/snippets_spec.js
new file mode 100644
index 00000000000..5b391606371
--- /dev/null
+++ b/spec/frontend/snippets_spec.js
@@ -0,0 +1,70 @@
+import snippetEmbed from '~/snippet/snippet_embed';
+import { loadHTMLFixture } from './helpers/fixtures';
+
+describe('Snippets', () => {
+ let embedBtn;
+ let snippetUrlArea;
+ let shareBtn;
+ let scriptTag;
+
+ const snippetUrl = 'http://test.host/snippets/1';
+
+ beforeEach(() => {
+ loadHTMLFixture('snippets/show.html');
+
+ embedBtn = document.querySelector('.js-embed-btn');
+ snippetUrlArea = document.querySelector('.js-snippet-url-area');
+ shareBtn = document.querySelector('.js-share-btn');
+ });
+
+ it('selects the fields content when it is clicked', () => {
+ jest.spyOn(snippetUrlArea, 'select');
+ snippetEmbed();
+
+ expect(snippetUrlArea.select).not.toHaveBeenCalled();
+ snippetUrlArea.dispatchEvent(new Event('click'));
+ expect(snippetUrlArea.select).toHaveBeenCalled();
+ });
+
+ describe('when the snippet url does not include params', () => {
+ beforeEach(() => {
+ snippetEmbed();
+
+ scriptTag = `<script src="${snippetUrl}.js"></script>`;
+ });
+
+ it('shows the script tag as default', () => {
+ expect(snippetUrlArea.value).toEqual(scriptTag);
+ });
+
+ it('sets the proper url depending on the button clicked', () => {
+ shareBtn.dispatchEvent(new Event('click'));
+ expect(snippetUrlArea.value).toEqual(snippetUrl);
+
+ embedBtn.dispatchEvent(new Event('click'));
+ expect(snippetUrlArea.value).toEqual(scriptTag);
+ });
+ });
+
+ describe('when the snippet url includes params', () => {
+ beforeEach(() => {
+ scriptTag = `<script src="${snippetUrl}.js?foo=bar"></script>`;
+ snippetUrlArea.value = scriptTag;
+ snippetUrlArea.dataset.url = `${snippetUrl}?foo=bar`;
+
+ snippetEmbed();
+ });
+
+ it('shows the script tag as default', () => {
+ expect(snippetUrlArea.value).toEqual(scriptTag);
+ });
+
+ it('sets the proper url depending on the button clicked', () => {
+ shareBtn.dispatchEvent(new Event('click'));
+ expect(snippetUrlArea.value).toEqual(`${snippetUrl}?foo=bar`);
+
+ embedBtn.dispatchEvent(new Event('click'));
+ expect(snippetUrlArea.value).toEqual(scriptTag);
+ });
+ });
+});