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/sessions/new/preserve_url_fragment_spec.js')
-rw-r--r--spec/frontend/pages/sessions/new/preserve_url_fragment_spec.js90
1 files changed, 61 insertions, 29 deletions
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');
+ });
});
});
});