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