康巴易测肤/伤疤uniapp小程序类
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.3KB

  1. import {createRouter, routesMapKeysRule} from '../src/index';
  2. import {routesForMapRoute} from '../src/helpers/utils';
  3. const routes = [
  4. {path: '/pages/login/login', name: 'login', aliasPath: '/'},
  5. {path: '/pages/page2/page2', name: 'page2', aliasPath: '/page2/:id'},
  6. {path: '/pages/page3/page3', aliasPath: '/:name/page3/:id'},
  7. {path: '/pages/animation/animation', aliasPath: '/an-(\\d+)-on'},
  8. {path: '/static/1/1', aliasPath: '/static/(.*)'},
  9. {path: '/dynamic/1/1', aliasPath: '/dynamic-*'},
  10. {path: '/dynamic/3/3', aliasPath: '/dynamic3'},
  11. {path: '*'}
  12. ];
  13. const router = createRouter({
  14. platform: 'app-plus',
  15. keepUniOriginNav: true,
  16. routes,
  17. });
  18. const Vue = function () {};
  19. Vue.mixin = () => {};
  20. router.install(Vue);
  21. const rules: routesMapKeysRule[] = ['finallyPathMap', 'pathMap'];
  22. it('别名路径匹配',()=>{
  23. const toRoute1 = routesForMapRoute(router, '/dynamic3', rules);
  24. expect(toRoute1).toEqual(routes[6]);
  25. const toRoute2 = routesForMapRoute(router, '/dynamic/3/3', rules);
  26. expect(toRoute2).toEqual(routes[6]);
  27. })
  28. it('全局匹配', () => {
  29. const toRoute1 = routesForMapRoute(router, '/pages/login/login', rules);
  30. expect(toRoute1).toEqual(routes[0]);
  31. const toRoute2 = routesForMapRoute(router,'/pages/login/login?id=666',rules);
  32. expect(toRoute2).toEqual(routes[0]);
  33. const toRoute3 = routesForMapRoute(router, '/page2/6666', rules);
  34. expect(toRoute3).toEqual(routes[1]);
  35. const toRoute4 = routesForMapRoute(router, '/page2/6666?id=555', rules);
  36. expect(toRoute4).toEqual(routes[1]);
  37. const toRoute5 = routesForMapRoute(router, '/pages/page3/page3', rules);
  38. expect(toRoute5).toEqual(routes[2]);
  39. const toRoute6 = routesForMapRoute(router, '/test/page3/123', rules);
  40. expect(toRoute6).toEqual(routes[2]);
  41. const toRoute7 = routesForMapRoute(router, '/an-123-on', rules);
  42. expect(toRoute7).toEqual(routes[3]);
  43. const toRoute8 = routesForMapRoute(router, '/static/aaa/bbb?id=1444&name=999', rules);
  44. expect(toRoute8).toEqual(routes[4]);
  45. const toRoute9 = routesForMapRoute(router, '/dynamic-6666-5555', rules);
  46. expect(toRoute9).toEqual(routes[5]);
  47. const toRoute10 = routesForMapRoute(router, '/aaaaaa', rules);
  48. expect(toRoute10).toEqual(routes[7]);
  49. const toRoute11 = routesForMapRoute(router, '---48848--14545', rules);
  50. expect(toRoute11).toEqual(routes[7]);
  51. });