summaryrefslogtreecommitdiff
path: root/spec/javascripts/repo/components/repo_prev_directory_spec.js
blob: 4c064f210848b5c3a308425c15e284441852e33c (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
44
45
46
47
import Vue from 'vue';
import repoPrevDirectory from '~/repo/components/repo_prev_directory.vue';
import eventHub from '~/repo/event_hub';

describe('RepoPrevDirectory', () => {
  function createComponent(propsData) {
    const RepoPrevDirectory = Vue.extend(repoPrevDirectory);

    return new RepoPrevDirectory({
      propsData,
    }).$mount();
  }

  it('renders a prev dir link', () => {
    const prevUrl = 'prevUrl';
    const vm = createComponent({
      prevUrl,
    });
    const link = vm.$el.querySelector('a');

    spyOn(vm, 'linkClicked');

    expect(link.href).toMatch(`/${prevUrl}`);
    expect(link.textContent).toEqual('...');

    link.click();

    expect(vm.linkClicked).toHaveBeenCalledWith(prevUrl);
  });

  describe('methods', () => {
    describe('linkClicked', () => {
      it('$emits linkclicked with prevUrl', () => {
        const prevUrl = 'prevUrl';
        const vm = createComponent({
          prevUrl,
        });

        spyOn(eventHub, '$emit');

        vm.linkClicked(prevUrl);

        expect(eventHub.$emit).toHaveBeenCalledWith('goToPreviousDirectoryClicked', prevUrl);
      });
    });
  });
});