1import { resolveParentId } from '../useNavigation'; 2 3describe(resolveParentId, () => { 4 it(`resolves nullish`, () => { 5 expect(resolveParentId('/', null)).toBe(null); 6 expect(resolveParentId('/foo', undefined)).toBe(null); 7 }); 8 it(`normalizes an absolute path`, () => { 9 expect(resolveParentId('/foo', '/foo')).toBe('/foo'); 10 expect(resolveParentId('/foo/bar', '/somn/else.tsx')).toBe('/somn/else'); 11 expect(resolveParentId('/foo/bar', '/')).toBe('/'); 12 }); 13 it(`normalizes a relative path`, () => { 14 expect(resolveParentId('/foo/bar', '../bat')).toBe('/foo/bat'); 15 expect(resolveParentId('/foo/bar', '../../bat')).toBe('/bat'); 16 expect(resolveParentId('/foo/value', './bat')).toBe('/foo/value/bat'); 17 // normalizes 18 expect(resolveParentId('/foo/bar', '../../bat.tsx')).toBe('/bat'); 19 }); 20 it(`asserts an invalid normalization`, () => { 21 expect(() => resolveParentId('/', '../..')).toThrow('Cannot resolve'); 22 expect(() => resolveParentId('', '..')).toThrow('Cannot resolve'); 23 }); 24}); 25