1import { getNormalizedStatePath } from '../LocationProvider'; 2 3describe(getNormalizedStatePath, () => { 4 // Ensure all values are correctly decoded 5 it(`returns the normalized path`, () => { 6 expect( 7 getNormalizedStatePath({ 8 path: '/foo/bar%20baz?alpha=beta', 9 params: { 10 alpha: 'beta other', 11 beta: 'gamma', 12 charlie: 'delta%20echo', 13 delta: ['evan', 'foxtrot%20gamma', 'hotel india'], 14 }, 15 }) 16 ).toEqual({ 17 segments: ['foo', 'bar baz'], 18 params: { 19 alpha: 'beta other', 20 beta: 'gamma', 21 charlie: 'delta echo', 22 // Ensure arrays are preserved (rest params). 23 delta: ['evan', 'foxtrot gamma', 'hotel india'], 24 }, 25 }); 26 }); 27 28 it(`returns the normalized path with a basePath`, () => { 29 expect( 30 getNormalizedStatePath( 31 { 32 path: '/one/two/foo/bar%20baz?alpha=beta', 33 params: { 34 alpha: 'beta other', 35 beta: 'gamma', 36 charlie: 'delta%20echo', 37 delta: ['evan', 'foxtrot%20gamma', 'hotel india'], 38 }, 39 }, 40 '/one/two' 41 ) 42 ).toEqual({ 43 segments: ['foo', 'bar baz'], 44 params: { 45 alpha: 'beta other', 46 beta: 'gamma', 47 charlie: 'delta echo', 48 // Ensure arrays are preserved (rest params). 49 delta: ['evan', 'foxtrot gamma', 'hotel india'], 50 }, 51 }); 52 }); 53}); 54