26 changed files with 249 additions and 49 deletions
@ -1,4 +1,5 @@ |
|||||
**/*.md |
**/*.md |
||||
**/*.svg |
**/*.svg |
||||
**/*.ejs |
**/*.ejs |
||||
|
**/*.html |
||||
package.json |
package.json |
||||
|
|||||
@ -0,0 +1,72 @@ |
|||||
|
import { urlToList } from '../_utils/pathTools'; |
||||
|
import { getFlatMenuKeys, getMenuMatchKeys } from './SiderMenu'; |
||||
|
|
||||
|
const menu = [ |
||||
|
{ |
||||
|
path: '/dashboard', |
||||
|
children: [ |
||||
|
{ |
||||
|
path: '/dashboard/name', |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
path: '/userinfo', |
||||
|
children: [ |
||||
|
{ |
||||
|
path: '/userinfo/:id', |
||||
|
children: [ |
||||
|
{ |
||||
|
path: '/userinfo/:id/info', |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
]; |
||||
|
|
||||
|
const flatMenuKeys = getFlatMenuKeys(menu); |
||||
|
|
||||
|
describe('test convert nested menu to flat menu', () => { |
||||
|
it('simple menu', () => { |
||||
|
expect(flatMenuKeys).toEqual([ |
||||
|
'/dashboard', |
||||
|
'/dashboard/name', |
||||
|
'/userinfo', |
||||
|
'/userinfo/:id', |
||||
|
'/userinfo/:id/info', |
||||
|
]); |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
describe('test menu match', () => { |
||||
|
it('simple path', () => { |
||||
|
expect(getMenuMatchKeys(flatMenuKeys, urlToList('/dashboard'))).toEqual(['/dashboard']); |
||||
|
}); |
||||
|
|
||||
|
it('error path', () => { |
||||
|
expect(getMenuMatchKeys(flatMenuKeys, urlToList('/dashboardname'))).toEqual([]); |
||||
|
}); |
||||
|
|
||||
|
it('Secondary path', () => { |
||||
|
expect(getMenuMatchKeys(flatMenuKeys, urlToList('/dashboard/name'))).toEqual([ |
||||
|
'/dashboard', |
||||
|
'/dashboard/name', |
||||
|
]); |
||||
|
}); |
||||
|
|
||||
|
it('Parameter path', () => { |
||||
|
expect(getMenuMatchKeys(flatMenuKeys, urlToList('/userinfo/2144'))).toEqual([ |
||||
|
'/userinfo', |
||||
|
'/userinfo/:id', |
||||
|
]); |
||||
|
}); |
||||
|
|
||||
|
it('three parameter path', () => { |
||||
|
expect(getMenuMatchKeys(flatMenuKeys, urlToList('/userinfo/2144/info'))).toEqual([ |
||||
|
'/userinfo', |
||||
|
'/userinfo/:id', |
||||
|
'/userinfo/:id/info', |
||||
|
]); |
||||
|
}); |
||||
|
}); |
||||
Loading…
Reference in new issue