committed by
陈帅
2 changed files with 61 additions and 35 deletions
@ -1,24 +1,49 @@ |
|||
import { getMeunMatchKeys } from './SiderMenu'; |
|||
import { urlToList } from '../_utils/pathTools'; |
|||
import { getFlatMenuKeys, getMeunMatchKeys } from './SiderMenu'; |
|||
|
|||
const meun = ['/dashboard', '/userinfo', '/dashboard/name', '/userinfo/:id', '/userinfo/:id/info']; |
|||
const menu = [{ |
|||
path: '/dashboard', |
|||
children: [{ |
|||
path: '/dashboard/name', |
|||
}], |
|||
}, { |
|||
path: '/userinfo', |
|||
children: [{ |
|||
path: '/userinfo/:id', |
|||
children: [{ |
|||
path: '/userinfo/:id/info', |
|||
}], |
|||
}], |
|||
}]; |
|||
|
|||
describe('test meun match', () => { |
|||
const flatMenuKeys = getFlatMenuKeys(menu); |
|||
|
|||
describe('test convert tree structure menu paths to flat menu paths', () => { |
|||
it('simple menu', () => { |
|||
expect(flatMenuKeys).toEqual( |
|||
['/dashboard', '/dashboard/name', '/userinfo', '/userinfo/:id', '/userinfo/:id/info'] |
|||
); |
|||
}) |
|||
}); |
|||
|
|||
describe('test menu match', () => { |
|||
it('simple path', () => { |
|||
expect(getMeunMatchKeys(meun, '/dashboard')).toEqual(['/dashboard']); |
|||
expect(getMeunMatchKeys(flatMenuKeys, urlToList('/dashboard'), true)).toEqual(['/dashboard']); |
|||
}); |
|||
|
|||
it('error path', () => { |
|||
expect(getMeunMatchKeys(meun, '/dashboardname')).toEqual([]); |
|||
expect(getMeunMatchKeys(flatMenuKeys, urlToList('/dashboardname'), true)).toEqual([]); |
|||
}); |
|||
|
|||
it('Secondary path', () => { |
|||
expect(getMeunMatchKeys(meun, '/dashboard/name')).toEqual(['/dashboard/name']); |
|||
expect(getMeunMatchKeys(flatMenuKeys, urlToList('/dashboard/name'), true)).toEqual(['/dashboard', '/dashboard/name']); |
|||
}); |
|||
|
|||
it('Parameter path', () => { |
|||
expect(getMeunMatchKeys(meun, '/userinfo/2144')).toEqual(['/userinfo/:id']); |
|||
expect(getMeunMatchKeys(flatMenuKeys, urlToList('/userinfo/2144'), true)).toEqual(['/userinfo', '/userinfo/:id']); |
|||
}); |
|||
|
|||
it('three parameter path', () => { |
|||
expect(getMeunMatchKeys(meun, '/userinfo/2144/info')).toEqual(['/userinfo/:id/info']); |
|||
expect(getMeunMatchKeys(flatMenuKeys, urlToList('/userinfo/2144/info'), false)).toEqual(['/userinfo', '/userinfo/:id', '/userinfo/:id/info']); |
|||
}); |
|||
}); |
|||
|
|||
Loading…
Reference in new issue