55 lines
2.4 KiB
JavaScript
55 lines
2.4 KiB
JavaScript
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
|
|
${'/'} | ${'main'} | ${IndexPage} | ${'IndexPage'}
|
|
${'/tree/main'} | ${'main'} | ${TreePage} | ${'TreePage'}
|
|
${'/tree/feat(test)'} | ${'feat(test)'} | ${TreePage} | ${'TreePage'}
|
|
${'/-/tree/main'} | ${'main'} | ${TreePage} | ${'TreePage'}
|
|
${'/-/tree/main/app/assets'} | ${'main'} | ${TreePage} | ${'TreePage'}
|
|
${'/-/tree/123/app/assets'} | ${'main'} | ${null} | ${'null'}
|
|
${'/-/blob/main/file.md'} | ${'main'} | ${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);
|
|
}
|
|
});
|
|
|
|
describe('Storing Web IDE path globally', () => {
|
|
const proj = 'foo-bar-group/foo-bar-proj';
|
|
let originalGl;
|
|
|
|
beforeEach(() => {
|
|
originalGl = window.gl;
|
|
});
|
|
|
|
afterEach(() => {
|
|
window.gl = originalGl;
|
|
});
|
|
|
|
it.each`
|
|
path | branch | expectedPath
|
|
${'/'} | ${'main'} | ${`/-/ide/project/${proj}/edit/main/-/`}
|
|
${'/tree/main'} | ${'main'} | ${`/-/ide/project/${proj}/edit/main/-/`}
|
|
${'/tree/feat(test)'} | ${'feat(test)'} | ${`/-/ide/project/${proj}/edit/feat(test)/-/`}
|
|
${'/-/tree/main'} | ${'main'} | ${`/-/ide/project/${proj}/edit/main/-/`}
|
|
${'/-/tree/main/app/assets'} | ${'main'} | ${`/-/ide/project/${proj}/edit/main/-/app/assets/`}
|
|
${'/-/blob/main/file.md'} | ${'main'} | ${`/-/ide/project/${proj}/edit/main/-/file.md`}
|
|
`('generates the correct Web IDE url for $path', ({ path, branch, expectedPath } = {}) => {
|
|
const router = createRouter(proj, branch);
|
|
|
|
router.push(path);
|
|
expect(window.gl.webIDEPath).toBe(expectedPath);
|
|
});
|
|
});
|
|
});
|