import { mapHrefToPath, mapHrefToPathWithOneSearchKey, mapHrefToPathWithMultiSearchKey } from '../utils'; describe('mapHrefToPath', () => { it('should return href without search and hash', () => { expect(mapHrefToPath('https://qq.com?a=1&b=2#c=3')).toBe('https://qq.com'); expect(mapHrefToPath('https://qq.com?a=1&b=2')).toBe('https://qq.com'); expect(mapHrefToPath('https://qq.com#c=3')).toBe('https://qq.com'); expect(mapHrefToPath('https://qq.com')).toBe('https://qq.com'); expect(mapHrefToPath('https://qq.com/?a=1#haha/a')).toBe('https://qq.com/'); }); }); describe('mapHrefToPathWithOneSearchKey', () => { it('should return href without search and hash', () => { expect(mapHrefToPathWithOneSearchKey('https://qq.com?a=1&b=2#c=3', 'a')).toBe('https://qq.com?a=1'); expect(mapHrefToPathWithOneSearchKey('https://qq.com?a=1&b=2#c=3', 'b')).toBe('https://qq.com?b=2'); expect(mapHrefToPathWithOneSearchKey('https://qq.com?a=1&b=2', 'a')).toBe('https://qq.com?a=1'); expect(mapHrefToPathWithOneSearchKey('https://qq.com#c=3', 'a')).toBe('https://qq.com'); expect(mapHrefToPathWithOneSearchKey('https://qq.com', 'a')).toBe('https://qq.com'); expect(mapHrefToPathWithOneSearchKey('https://qq.com/?a=1#haha/a', 'a')).toBe('https://qq.com/?a=1'); }); }); describe('mapHrefToPathWithMultiSearchKey', () => { it('should return href without search and hash', () => { expect(mapHrefToPathWithMultiSearchKey('https://qq.com?a=1&b=2#c=3', ['a', 'b'])).toBe('https://qq.com?a=1&b=2'); expect(mapHrefToPathWithMultiSearchKey('https://qq.com?a=1&b=2#c=3', ['b', 'a'])).toBe('https://qq.com?b=2&a=1'); expect(mapHrefToPathWithMultiSearchKey('https://qq.com?a=1&b=2', ['a', 'b'])).toBe('https://qq.com?a=1&b=2'); expect(mapHrefToPathWithMultiSearchKey('https://qq.com?a=1#c=3', ['a', 'b'])).toBe('https://qq.com?a=1'); expect(mapHrefToPathWithMultiSearchKey('https://qq.com?b=2#c=3', ['a', 'b'])).toBe('https://qq.com?b=2'); expect(mapHrefToPathWithMultiSearchKey('https://qq.com#c=3', ['a', 'b'])).toBe('https://qq.com'); expect(mapHrefToPathWithMultiSearchKey('https://qq.com', ['a', 'b'])).toBe('https://qq.com'); expect(mapHrefToPathWithMultiSearchKey('https://qq.com/?a=1#haha/a', ['a'])).toBe('https://qq.com/?a=1'); expect(mapHrefToPathWithMultiSearchKey('https://qq.com/?a=1&b=2&c=3#haha/a', ['c', 'a'])).toBe( 'https://qq.com/?c=3&a=1', ); }); });