summaryrefslogtreecommitdiff
path: root/spec/frontend/repository/utils/dom_spec.js
blob: f9e619a82d1865a80b7e886e2a1d205ce57b07da (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
import { TEST_HOST } from 'helpers/test_constants';
import { setHTMLFixture } from 'helpers/fixtures';
import { updateElementsVisibility, updateFormAction } from '~/repository/utils/dom';

describe('updateElementsVisibility', () => {
  it('adds hidden class', () => {
    setHTMLFixture('<div class="js-test"></div>');

    updateElementsVisibility('.js-test', false);

    expect(document.querySelector('.js-test').classList).toContain('hidden');
  });

  it('removes hidden class', () => {
    setHTMLFixture('<div class="hidden js-test"></div>');

    updateElementsVisibility('.js-test', true);

    expect(document.querySelector('.js-test').classList).not.toContain('hidden');
  });
});

describe('updateFormAction', () => {
  it.each`
    path
    ${'/test'}
    ${'test'}
    ${'/'}
  `('updates form action for $path', ({ path }) => {
    setHTMLFixture('<form class="js-test" action="/"></form>');

    updateFormAction('.js-test', '/gitlab/create', path);

    expect(document.querySelector('.js-test').action).toBe(
      `${TEST_HOST}/gitlab/create/${path.replace(/^\//, '')}`,
    );
  });
});