mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-08-29 04:26:38 +00:00
35 lines
1.7 KiB
TypeScript
35 lines
1.7 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import {
|
|
abbreviateHomePath, resolveWorkspacePath, workspaceTitleOf,
|
|
} from '@deepseek-ai/dsh-util-workspace-path'
|
|
|
|
describe('Workspace path helpers', () => {
|
|
it('resolves relative paths without changing absolute paths', () => {
|
|
expect(resolveWorkspacePath('/w', 'src/a.ts')).toBe('/w/src/a.ts')
|
|
expect(resolveWorkspacePath('/w/', '/abs/a.ts')).toBe('/abs/a.ts')
|
|
expect(resolveWorkspacePath(undefined, 'src/a.ts')).toBe('src/a.ts')
|
|
expect(resolveWorkspacePath('', 'src/a.ts')).toBe('src/a.ts')
|
|
expect(resolveWorkspacePath('/w', 'C:\\x\\a.ts')).toBe('C:\\x\\a.ts')
|
|
expect(resolveWorkspacePath('/w', '\\\\server\\share')).toBe('\\\\server\\share')
|
|
})
|
|
|
|
it('abbreviates only descendants of a POSIX home', () => {
|
|
expect(abbreviateHomePath('/Users/u', '/Users/u')).toBe('~')
|
|
expect(abbreviateHomePath('/Users/u/', '/Users/u')).toBe('~')
|
|
expect(abbreviateHomePath('/Users/u/Documents/project', '/Users/u')).toBe('~/Documents/project')
|
|
expect(abbreviateHomePath('/Users/u2/a.ts', '/Users/u')).toBe('/Users/u2/a.ts')
|
|
expect(abbreviateHomePath('/Users/u/a.ts')).toBe('/Users/u/a.ts')
|
|
expect(abbreviateHomePath('/Users/u/a.ts', '')).toBe('/Users/u/a.ts')
|
|
expect(abbreviateHomePath('/etc/hosts', '/')).toBe('/etc/hosts')
|
|
expect(abbreviateHomePath('C:\\Users\\u\\project', 'C:\\Users\\u')).toBe('C:\\Users\\u\\project')
|
|
expect(abbreviateHomePath('\\\\server\\share\\u', '\\\\server\\share\\u'))
|
|
.toBe('\\\\server\\share\\u')
|
|
})
|
|
|
|
it('reads the final path segment on both path styles', () => {
|
|
expect(workspaceTitleOf('/work/project/')).toBe('project')
|
|
expect(workspaceTitleOf('C:\\work\\project\\')).toBe('project')
|
|
expect(workspaceTitleOf('/')).toBe('')
|
|
})
|
|
})
|