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')
-rw-r--r--spec/frontend/fixtures/static/oauth_remember_me.html21
-rw-r--r--spec/frontend/oauth_remember_me_spec.js36
-rw-r--r--spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js90
-rw-r--r--spec/frontend/repository/components/commit_info_spec.js21
-rw-r--r--spec/frontend/tracking/internal_events_spec.js15
5 files changed, 93 insertions, 90 deletions
diff --git a/spec/frontend/fixtures/static/oauth_remember_me.html b/spec/frontend/fixtures/static/oauth_remember_me.html
deleted file mode 100644
index d7519dd695f..00000000000
--- a/spec/frontend/fixtures/static/oauth_remember_me.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<div class="js-oauth-login">
- <input id="remember_me_omniauth" type="checkbox" />
-
- <form method="post" action="http://example.com/">
- <button class="twitter" type="submit">
- <span>Twitter</span>
- </button>
- </form>
-
- <form method="post" action="http://example.com/">
- <button class="github" type="submit">
- <span>GitHub</span>
- </button>
- </form>
-
- <form method="post" action="http://example.com/?redirect_fragment=L1">
- <button class="facebook" type="submit">
- <span>Facebook</span>
- </button>
- </form>
-</div>
diff --git a/spec/frontend/oauth_remember_me_spec.js b/spec/frontend/oauth_remember_me_spec.js
deleted file mode 100644
index 4fea216302f..00000000000
--- a/spec/frontend/oauth_remember_me_spec.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import $ from 'jquery';
-import htmlOauthRememberMe from 'test_fixtures_static/oauth_remember_me.html';
-import { setHTMLFixture, resetHTMLFixture } from 'helpers/fixtures';
-import OAuthRememberMe from '~/pages/sessions/new/oauth_remember_me';
-
-describe('OAuthRememberMe', () => {
- const findFormAction = (selector) => {
- return $(`.js-oauth-login ${selector}`).parent('form').attr('action');
- };
-
- beforeEach(() => {
- setHTMLFixture(htmlOauthRememberMe);
-
- new OAuthRememberMe({ container: $('.js-oauth-login') }).bindEvents();
- });
-
- afterEach(() => {
- resetHTMLFixture();
- });
-
- it('adds and removes the "remember_me" query parameter from all OAuth login buttons', () => {
- $('.js-oauth-login #remember_me_omniauth').click();
-
- expect(findFormAction('.twitter')).toBe('http://example.com/?remember_me=1');
- expect(findFormAction('.github')).toBe('http://example.com/?remember_me=1');
- expect(findFormAction('.facebook')).toBe(
- 'http://example.com/?redirect_fragment=L1&remember_me=1',
- );
-
- $('.js-oauth-login #remember_me_omniauth').click();
-
- expect(findFormAction('.twitter')).toBe('http://example.com/');
- expect(findFormAction('.github')).toBe('http://example.com/');
- expect(findFormAction('.facebook')).toBe('http://example.com/?redirect_fragment=L1');
- });
-});
diff --git a/spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js b/spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js
index 7607381a981..60cf5dc65a2 100644
--- a/spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js
+++ b/spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js
@@ -1,13 +1,12 @@
-import $ from 'jquery';
import htmlSessionsNew from 'test_fixtures/sessions/new.html';
import { setHTMLFixture, resetHTMLFixture } from 'helpers/fixtures';
-import preserveUrlFragment from '~/pages/sessions/new/preserve_url_fragment';
+import {
+ appendUrlFragment,
+ appendRedirectQuery,
+ toggleRememberMeQuery,
+} from '~/pages/sessions/new/preserve_url_fragment';
describe('preserve_url_fragment', () => {
- const findFormAction = (selector) => {
- return $(`.js-oauth-login ${selector}`).parent('form').attr('action');
- };
-
beforeEach(() => {
setHTMLFixture(htmlSessionsNew);
});
@@ -16,41 +15,74 @@ describe('preserve_url_fragment', () => {
resetHTMLFixture();
});
- it('adds the url fragment to the login form actions', () => {
- preserveUrlFragment('#L65');
+ describe('non-OAuth login forms', () => {
+ describe('appendUrlFragment', () => {
+ const findFormAction = () => document.querySelector('.js-non-oauth-login form').action;
- expect($('#new_user').attr('action')).toBe('http://test.host/users/sign_in#L65');
- });
+ it('adds the url fragment to the login form actions', () => {
+ appendUrlFragment('#L65');
- it('does not add an empty url fragment to the login form actions', () => {
- preserveUrlFragment();
+ expect(findFormAction()).toBe('http://test.host/users/sign_in#L65');
+ });
- expect($('#new_user').attr('action')).toBe('http://test.host/users/sign_in');
+ it('does not add an empty url fragment to the login form actions', () => {
+ appendUrlFragment();
+
+ expect(findFormAction()).toBe('http://test.host/users/sign_in');
+ });
+ });
});
- it('does not add an empty query parameter to OmniAuth login buttons', () => {
- preserveUrlFragment();
+ describe('OAuth login forms', () => {
+ const findFormAction = (selector) =>
+ document.querySelector(`.js-oauth-login #oauth-login-${selector}`).parentElement.action;
- expect(findFormAction('#oauth-login-auth0')).toBe('http://test.host/users/auth/auth0');
- });
+ describe('appendRedirectQuery', () => {
+ it('does not add an empty query parameter to the login form actions', () => {
+ appendRedirectQuery();
+
+ expect(findFormAction('auth0')).toBe('http://test.host/users/auth/auth0');
+ });
+
+ describe('adds "redirect_fragment" query parameter to the login form actions', () => {
+ it('when "remember_me" is not present', () => {
+ appendRedirectQuery('#L65');
- describe('adds "redirect_fragment" query parameter to OmniAuth login buttons', () => {
- it('when "remember_me" is not present', () => {
- preserveUrlFragment('#L65');
+ expect(findFormAction('auth0')).toBe(
+ 'http://test.host/users/auth/auth0?redirect_fragment=L65',
+ );
+ });
- expect(findFormAction('#oauth-login-auth0')).toBe(
- 'http://test.host/users/auth/auth0?redirect_fragment=L65',
- );
+ it('when "remember_me" is present', () => {
+ document
+ .querySelectorAll('form')
+ .forEach((form) => form.setAttribute('action', `${form.action}?remember_me=1`));
+
+ appendRedirectQuery('#L65');
+
+ expect(findFormAction('auth0')).toBe(
+ 'http://test.host/users/auth/auth0?remember_me=1&redirect_fragment=L65',
+ );
+ });
+ });
});
- it('when "remember-me" is present', () => {
- $('.js-oauth-login form').attr('action', (i, href) => `${href}?remember_me=1`);
+ describe('toggleRememberMeQuery', () => {
+ const rememberMe = () => document.querySelector('#js-remember-me-omniauth');
+
+ it('toggles "remember_me" query parameter', () => {
+ toggleRememberMeQuery();
+
+ expect(findFormAction('auth0')).toBe('http://test.host/users/auth/auth0');
+
+ rememberMe().click();
+
+ expect(findFormAction('auth0')).toBe('http://test.host/users/auth/auth0?remember_me=1');
- preserveUrlFragment('#L65');
+ rememberMe().click();
- expect(findFormAction('#oauth-login-auth0')).toBe(
- 'http://test.host/users/auth/auth0?remember_me=1&redirect_fragment=L65',
- );
+ expect(findFormAction('auth0')).toBe('http://test.host/users/auth/auth0');
+ });
});
});
});
diff --git a/spec/frontend/repository/components/commit_info_spec.js b/spec/frontend/repository/components/commit_info_spec.js
index 4e570346d97..f868bc0623e 100644
--- a/spec/frontend/repository/components/commit_info_spec.js
+++ b/spec/frontend/repository/components/commit_info_spec.js
@@ -16,14 +16,15 @@ const commit = {
const findTextExpander = () => wrapper.findComponent(GlButton);
const findUserLink = () => wrapper.findByText(commit.author.name);
+const findCommitterWrapper = () => wrapper.findByTestId('committer');
const findUserAvatarLink = () => wrapper.findComponent(UserAvatarLink);
const findAuthorName = () => wrapper.findByText(`${commit.authorName} authored`);
const findCommitRowDescription = () => wrapper.find('pre');
const findTitleHtml = () => wrapper.findByText(commit.titleHtml);
-const createComponent = async ({ commitMock = {}, prevBlameLink } = {}) => {
+const createComponent = async ({ commitMock = {}, prevBlameLink, span = 3 } = {}) => {
wrapper = shallowMountExtended(CommitInfo, {
- propsData: { commit: { ...commit, ...commitMock }, prevBlameLink },
+ propsData: { commit: { ...commit, ...commitMock }, prevBlameLink, span },
});
await nextTick();
@@ -46,6 +47,22 @@ describe('Repository last commit component', () => {
expect(findAuthorName().exists()).toBe(true);
});
+ it('truncates author name when commit spans less than 3 lines', () => {
+ createComponent({ span: 2 });
+
+ expect(findCommitterWrapper().classes()).toEqual([
+ 'committer',
+ 'gl-flex-basis-full',
+ 'gl-display-inline-flex',
+ ]);
+ expect(findUserLink().classes()).toEqual([
+ 'commit-author-link',
+ 'js-user-link',
+ 'gl-display-inline-block',
+ 'gl-text-truncate',
+ ]);
+ });
+
it('does not render description expander when description is null', () => {
createComponent();
diff --git a/spec/frontend/tracking/internal_events_spec.js b/spec/frontend/tracking/internal_events_spec.js
index 295b08f4b1c..194d33ae6b9 100644
--- a/spec/frontend/tracking/internal_events_spec.js
+++ b/spec/frontend/tracking/internal_events_spec.js
@@ -4,6 +4,7 @@ import InternalEvents from '~/tracking/internal_events';
import { LOAD_INTERNAL_EVENTS_SELECTOR } from '~/tracking/constants';
import * as utils from '~/tracking/utils';
import { Tracker } from '~/tracking/tracker';
+import Tracking from '~/tracking';
jest.mock('~/api', () => ({
trackInternalEvent: jest.fn(),
@@ -20,13 +21,23 @@ const event = 'TestEvent';
describe('InternalEvents', () => {
describe('trackEvent', () => {
+ const category = 'TestCategory';
+
it('trackEvent calls API.trackInternalEvent with correct arguments', () => {
- InternalEvents.trackEvent(event);
+ InternalEvents.trackEvent(event, category);
expect(API.trackInternalEvent).toHaveBeenCalledTimes(1);
expect(API.trackInternalEvent).toHaveBeenCalledWith(event);
});
+ it('trackEvent calls Tracking.event with correct arguments including category', () => {
+ jest.spyOn(Tracking, 'event').mockImplementation(() => {});
+
+ InternalEvents.trackEvent(event, category);
+
+ expect(Tracking.event).toHaveBeenCalledWith(category, event, expect.any(Object));
+ });
+
it('trackEvent calls trackBrowserSDK with correct arguments', () => {
jest.spyOn(InternalEvents, 'trackBrowserSDK').mockImplementation(() => {});
@@ -63,7 +74,7 @@ describe('InternalEvents', () => {
await wrapper.findByTestId('button').trigger('click');
expect(trackEventSpy).toHaveBeenCalledTimes(1);
- expect(trackEventSpy).toHaveBeenCalledWith(event);
+ expect(trackEventSpy).toHaveBeenCalledWith(event, undefined);
});
});