UNPKG

acebase-core

Version:

Shared AceBase core components, no need to install manually

170 lines 10.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path_info_1 = require("./path-info"); describe('PathInfo', function () { it('should remove start/end slashes', () => { expect(path_info_1.PathInfo.get('/').path).toEqual(''); expect(path_info_1.PathInfo.get('/users/ewout/').path).toEqual('users/ewout'); }); it('.key', () => { expect(path_info_1.PathInfo.get('').key).toBeNull(); expect(path_info_1.PathInfo.get('users').key).toEqual('users'); expect(path_info_1.PathInfo.get('users/ewout').key).toEqual('ewout'); expect(path_info_1.PathInfo.get('users/ewout/posts').key).toEqual('posts'); expect(path_info_1.PathInfo.get('songs/song1/tags[0]').key).toEqual(0); expect(path_info_1.PathInfo.get('songs/song1/tags[0]/text').key).toEqual('text'); expect(path_info_1.PathInfo.get('users/ewout/*').key).toEqual('*'); expect(path_info_1.PathInfo.get('users/ewout/$var').key).toEqual('$var'); }); it('.parent', () => { const pathInfo = path_info_1.PathInfo.get('users/ewout/posts'); expect(pathInfo.parent.path).toEqual('users/ewout'); expect(path_info_1.PathInfo.get('').parent).toBeNull(); }); it('.parentPath', () => { const pathInfo = path_info_1.PathInfo.get('users/ewout/posts'); expect(pathInfo.parentPath).toEqual('users/ewout'); expect(path_info_1.PathInfo.get('').parentPath).toBeNull(); }); it('.child', () => { const pathInfo = path_info_1.PathInfo.get('users/ewout/posts'); expect(pathInfo.child('post1').path).toEqual('users/ewout/posts/post1'); expect(pathInfo.child('post1/title').path).toEqual('users/ewout/posts/post1/title'); expect(pathInfo.child('/post1/title').path).toEqual('users/ewout/posts/post1/title'); expect(pathInfo.child('/post1/title/').path).toEqual('users/ewout/posts/post1/title'); expect(pathInfo.child(0).path).toEqual('users/ewout/posts[0]'); expect(pathInfo.child('[0]/title').path).toEqual('users/ewout/posts[0]/title'); expect(pathInfo.child('*').path).toEqual('users/ewout/posts/*'); }); it('.childPath', () => { const pathInfo = path_info_1.PathInfo.get('users/ewout/posts'); expect(pathInfo.childPath('post1')).toEqual('users/ewout/posts/post1'); expect(pathInfo.childPath('/post1')).toEqual('users/ewout/posts/post1'); expect(pathInfo.childPath('/post1/')).toEqual('users/ewout/posts/post1'); expect(pathInfo.childPath('post1/title')).toEqual('users/ewout/posts/post1/title'); expect(pathInfo.childPath('*/title')).toEqual('users/ewout/posts/*/title'); }); it('.equals', () => { const pathInfo = path_info_1.PathInfo.get('users/ewout/posts'); expect(pathInfo.equals('users/ewout/posts')).toBeTrue(); expect(pathInfo.equals(path_info_1.PathInfo.get('users/ewout/posts'))).toBeTrue(); expect(pathInfo.equals('users/ewout/address')).toBeFalse(); expect(pathInfo.equals(path_info_1.PathInfo.get('users/ewout/address'))).toBeFalse(); expect(pathInfo.equals('users/*/posts')).toBeTrue(); expect(pathInfo.equals(path_info_1.PathInfo.get('users/*/posts'))).toBeTrue(); expect(pathInfo.equals('users/*/$var')).toBeTrue(); expect(pathInfo.equals(path_info_1.PathInfo.get('users/*/$var'))).toBeTrue(); }); it('.isParentOf', () => { const pathInfo = path_info_1.PathInfo.get('users/ewout/posts'); expect(pathInfo.isParentOf('users')).toBeFalse(); expect(pathInfo.isParentOf('users/ewout')).toBeFalse(); expect(pathInfo.isParentOf('users/ewout/posts')).toBeFalse(); expect(pathInfo.isParentOf('users/ewout/posts/post1')).toBeTrue(); expect(pathInfo.isParentOf('users/ewout/posts/post1/title')).toBeFalse(); // Wildcards: expect(pathInfo.isParentOf('*')).toBeFalse(); expect(pathInfo.isParentOf('users/*')).toBeFalse(); expect(pathInfo.isParentOf('users/*/posts')).toBeFalse(); expect(pathInfo.isParentOf('users/*/posts/post1')).toBeTrue(); expect(pathInfo.isParentOf('users/*/posts/post1/title')).toBeFalse(); expect(pathInfo.isParentOf('users/ewout/*')).toBeFalse(); expect(pathInfo.isParentOf('users/ewout/*/post1')).toBeTrue(); expect(pathInfo.isParentOf('users/ewout/*/post1/title')).toBeFalse(); // Variables: expect(pathInfo.isParentOf('$prop')).toBeFalse(); expect(pathInfo.isParentOf('users/$uid')).toBeFalse(); expect(pathInfo.isParentOf('users/$uid/posts')).toBeFalse(); expect(pathInfo.isParentOf('users/$uid/posts/post1')).toBeTrue(); expect(pathInfo.isParentOf('users/$uid/posts/post1/title')).toBeFalse(); expect(pathInfo.isParentOf('users/ewout/$prop')).toBeFalse(); expect(pathInfo.isParentOf('users/ewout/$prop/post1')).toBeTrue(); expect(pathInfo.isParentOf('users/ewout/$prop/post1/title')).toBeFalse(); }); it('.isChildOf', () => { const pathInfo = path_info_1.PathInfo.get('users/ewout/posts'); expect(pathInfo.isChildOf('users')).toBeFalse(); expect(pathInfo.isChildOf('users/ewout')).toBeTrue(); expect(pathInfo.isChildOf('users/ewout/posts')).toBeFalse(); expect(pathInfo.isChildOf('users/ewout/posts/post1')).toBeFalse(); // Wildcards: expect(pathInfo.isChildOf('*')).toBeFalse(); expect(pathInfo.isChildOf('users/*')).toBeTrue(); expect(pathInfo.isChildOf('users/*/posts')).toBeFalse(); expect(pathInfo.isChildOf('*/ewout')).toBeTrue(); expect(pathInfo.isChildOf('*/ewout/posts')).toBeFalse(); // Variables: expect(pathInfo.isChildOf('$prop')).toBeFalse(); expect(pathInfo.isChildOf('users/$uid')).toBeTrue(); expect(pathInfo.isChildOf('users/$uid/posts')).toBeFalse(); expect(pathInfo.isChildOf('$prop/ewout')).toBeTrue(); expect(pathInfo.isChildOf('$prop/ewout/posts')).toBeFalse(); }); it('.isAncestorOf', () => { const pathInfo = path_info_1.PathInfo.get('users/ewout/posts'); expect(pathInfo.isAncestorOf('users')).toBeFalse(); expect(pathInfo.isAncestorOf('users/ewout')).toBeFalse(); expect(pathInfo.isAncestorOf('users/ewout/posts')).toBeFalse(); expect(pathInfo.isAncestorOf('users/ewout/posts/post1')).toBeTrue(); expect(pathInfo.isAncestorOf('users/ewout/posts/post1/title')).toBeTrue(); // Wildcards: expect(pathInfo.isAncestorOf('*')).toBeFalse(); expect(pathInfo.isAncestorOf('users/*')).toBeFalse(); expect(pathInfo.isAncestorOf('users/*/posts')).toBeFalse(); expect(pathInfo.isAncestorOf('users/*/posts/post1')).toBeTrue(); expect(pathInfo.isAncestorOf('users/*/posts/*/title')).toBeTrue(); // Variables: expect(pathInfo.isAncestorOf('*')).toBeFalse(); expect(pathInfo.isAncestorOf('users/$uid')).toBeFalse(); expect(pathInfo.isAncestorOf('users/$uid/posts')).toBeFalse(); expect(pathInfo.isAncestorOf('users/$uid/posts/post1')).toBeTrue(); expect(pathInfo.isAncestorOf('users/$uid/posts/$post/title')).toBeTrue(); }); it('.isDescendantOf', () => { const pathInfo = path_info_1.PathInfo.get('users/ewout/posts'); expect(pathInfo.isDescendantOf('')).toBeTrue(); expect(pathInfo.isDescendantOf('users')).toBeTrue(); expect(pathInfo.isDescendantOf('users/ewout')).toBeTrue(); expect(pathInfo.isDescendantOf('users/ewout/posts')).toBeFalse(); expect(pathInfo.isDescendantOf('users/ewout/posts/post1')).toBeFalse(); // Wildcards: expect(pathInfo.isDescendantOf('*')).toBeTrue(); expect(pathInfo.isDescendantOf('users/*')).toBeTrue(); expect(pathInfo.isDescendantOf('users/*/posts')).toBeFalse(); expect(pathInfo.isDescendantOf('*/ewout')).toBeTrue(); expect(pathInfo.isDescendantOf('*/ewout/posts')).toBeFalse(); // Variables: expect(pathInfo.isDescendantOf('$prop')).toBeTrue(); expect(pathInfo.isDescendantOf('users/$uid')).toBeTrue(); expect(pathInfo.isDescendantOf('users/$uid/posts')).toBeFalse(); expect(pathInfo.isDescendantOf('$prop/ewout')).toBeTrue(); expect(pathInfo.isDescendantOf('$prop/ewout/posts')).toBeFalse(); }); it('.isOnTrailOf', function () { const pathInfo = path_info_1.PathInfo.get('users/ewout/posts'); expect(pathInfo.isOnTrailOf('')).toBe(true); expect(pathInfo.isOnTrailOf('users')).toBe(true); expect(pathInfo.isOnTrailOf('users/ewout')).toBe(true); expect(pathInfo.isOnTrailOf('users/ewout/posts')).toBe(true); expect(pathInfo.isOnTrailOf('users/ewout/posts/post1')).toBe(true); expect(pathInfo.isOnTrailOf('users/ewout/posts/post1/title')).toBe(true); expect(pathInfo.isOnTrailOf('users/ewout/archived/post1/title')).toBe(false); expect(pathInfo.isOnTrailOf('users/annet/posts/post1/title')).toBe(false); expect(pathInfo.isOnTrailOf('users/ewout/posts/post2/title')).toBe(true); expect(pathInfo.isOnTrailOf('users/ewout/posts/post1/date')).toBe(true); expect(pathInfo.isOnTrailOf('users/ewout/posts/post1')).toBe(true); expect(pathInfo.isOnTrailOf('users/ewout/posts')).toBe(true); expect(pathInfo.isOnTrailOf('users/annet')).toBe(false); expect(pathInfo.isOnTrailOf('users')).toBe(true); expect(pathInfo.isOnTrailOf('userss/ewout')).toBe(false); expect(pathInfo.isOnTrailOf('userss')).toBe(false); expect(pathInfo.isOnTrailOf('*')).toBe(true); expect(pathInfo.isOnTrailOf('$any')).toBe(true); expect(pathInfo.isOnTrailOf('users/$uid')).toBe(true); expect(pathInfo.isOnTrailOf('users/*')).toBe(true); expect(pathInfo.isOnTrailOf('users/$uid/messages')).toBe(false); expect(pathInfo.isOnTrailOf('users/$uid/posts/post1/title')).toBe(true); expect(pathInfo.isOnTrailOf('users/*/posts/post1/title')).toBe(true); }); }); //# sourceMappingURL=path-info.spec.js.map