summaryrefslogtreecommitdiff
path: root/spec/javascripts/pages/admin/users/new/index_spec.js
blob: 3896323eef7223810405ecca711643c20038ab90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import $ from 'jquery';
import UserInternalRegexHandler from '~/pages/admin/users/new/index';

describe('UserInternalRegexHandler', () => {
  const FIXTURE = 'admin/users/new_with_internal_user_regex.html';
  let $userExternal;
  let $userEmail;
  let $warningMessage;

  preloadFixtures(FIXTURE);

  beforeEach(() => {
    loadFixtures(FIXTURE);
    // eslint-disable-next-line no-new
    new UserInternalRegexHandler();
    $userExternal = $('#user_external');
    $userEmail = $('#user_email');
    $warningMessage = $('#warning_external_automatically_set');
    if (!$userExternal.prop('checked')) $userExternal.prop('checked', 'checked');
  });

  describe('Behaviour of userExternal checkbox when', () => {
    it('matches email as internal', done => {
      expect($warningMessage.hasClass('hidden')).toBeTruthy();

      $userEmail.val('test@').trigger('input');

      expect($userExternal.prop('checked')).toBeFalsy();
      expect($warningMessage.hasClass('hidden')).toBeFalsy();
      done();
    });

    it('matches email as external', done => {
      expect($warningMessage.hasClass('hidden')).toBeTruthy();

      $userEmail.val('test.ext@').trigger('input');

      expect($userExternal.prop('checked')).toBeTruthy();
      expect($warningMessage.hasClass('hidden')).toBeTruthy();
      done();
    });
  });
});