* add package.json Signed-off-by: Jess Frazelle <github@jessfraz.com> initial run; Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> more fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> clientsidescne Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> paths Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> fix styles Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> combine Signed-off-by: Jess Frazelle <github@jessfraz.com> eslint rule Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> my ocd Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> constants file Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> no more import sceneInfra Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> try fix circular import Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
81 lines
2.3 KiB
TypeScript
81 lines
2.3 KiB
TypeScript
import * as path from 'path'
|
|
|
|
import { parseProjectRoute } from '@src/lib/paths'
|
|
|
|
describe('testing parseProjectRoute', () => {
|
|
it('should parse a project as a subpath of project dir', async () => {
|
|
let config = {
|
|
settings: {
|
|
project: {
|
|
directory: '/home/somebody/projects',
|
|
},
|
|
},
|
|
}
|
|
const route = '/home/somebody/projects/project'
|
|
expect(await parseProjectRoute(config, route, path)).toEqual({
|
|
projectName: 'project',
|
|
projectPath: route,
|
|
currentFileName: null,
|
|
currentFilePath: null,
|
|
})
|
|
})
|
|
it('should parse a project as the project dir', async () => {
|
|
let config = {
|
|
settings: {
|
|
project: {
|
|
directory: '/home/somebody/projects',
|
|
},
|
|
},
|
|
}
|
|
const route = '/home/somebody/projects'
|
|
expect(await parseProjectRoute(config, route, path)).toEqual({
|
|
projectName: null,
|
|
projectPath: route,
|
|
currentFileName: null,
|
|
currentFilePath: null,
|
|
})
|
|
})
|
|
it('should parse a project with file in the project dir', async () => {
|
|
let config = {
|
|
settings: {
|
|
project: {
|
|
directory: '/home/somebody/projects',
|
|
},
|
|
},
|
|
}
|
|
const route = '/home/somebody/projects/assembly/main.kcl'
|
|
expect(await parseProjectRoute(config, route, path)).toEqual({
|
|
projectName: 'assembly',
|
|
projectPath: '/home/somebody/projects/assembly',
|
|
currentFileName: 'main.kcl',
|
|
currentFilePath: route,
|
|
})
|
|
})
|
|
it('should parse a project with file in a subdir in the project dir', async () => {
|
|
let config = {
|
|
settings: {
|
|
project: {
|
|
directory: '/home/somebody/projects',
|
|
},
|
|
},
|
|
}
|
|
const route = '/home/somebody/projects/assembly/subdir/main.kcl'
|
|
expect(await parseProjectRoute(config, route, path)).toEqual({
|
|
projectName: 'assembly',
|
|
projectPath: '/home/somebody/projects/assembly',
|
|
currentFileName: 'main.kcl',
|
|
currentFilePath: route,
|
|
})
|
|
})
|
|
it('should work in the browser context', async () => {
|
|
let config = {}
|
|
const route = '/browser/main.kcl'
|
|
expect(await parseProjectRoute(config, route, undefined)).toEqual({
|
|
projectName: 'browser',
|
|
projectPath: '/browser',
|
|
currentFileName: 'main.kcl',
|
|
currentFilePath: route,
|
|
})
|
|
})
|
|
})
|