summaryrefslogtreecommitdiff
path: root/spec/frontend/repository/router_spec.js
blob: 3354b2315fca9cd71e0a29d2506d24fe14ac2e17 (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
import BlobPage from '~/repository/pages/blob.vue';
import IndexPage from '~/repository/pages/index.vue';
import TreePage from '~/repository/pages/tree.vue';
import createRouter from '~/repository/router';

describe('Repository router spec', () => {
  it.each`
    path                           | branch          | component    | componentName
    ${'/'}                         | ${'master'}     | ${IndexPage} | ${'IndexPage'}
    ${'/tree/master'}              | ${'master'}     | ${TreePage}  | ${'TreePage'}
    ${'/tree/feat(test)'}          | ${'feat(test)'} | ${TreePage}  | ${'TreePage'}
    ${'/-/tree/master'}            | ${'master'}     | ${TreePage}  | ${'TreePage'}
    ${'/-/tree/master/app/assets'} | ${'master'}     | ${TreePage}  | ${'TreePage'}
    ${'/-/tree/123/app/assets'}    | ${'master'}     | ${null}      | ${'null'}
    ${'/-/blob/master/file.md'}    | ${'master'}     | ${BlobPage}  | ${'BlobPage'}
  `('sets component as $componentName for path "$path"', ({ path, component, branch }) => {
    const router = createRouter('', branch);

    const componentsForRoute = router.getMatchedComponents(path);

    expect(componentsForRoute.length).toBe(component ? 1 : 0);

    if (component) {
      expect(componentsForRoute).toContain(component);
    }
  });
});