index.test.js 1.3 KB
Newer Older
徐立's avatar
徐立 committed
1 2 3 4
import { getBreadcrumb } from './breadcrumb';
import { urlToList } from '../_utils/pathTools';

const routerData = {
5 6 7 8 9 10 11 12 13 14 15 16
	'/dashboard/analysis': {
		name: '分析页',
	},
	'/userinfo': {
		name: '用户列表',
	},
	'/userinfo/:id': {
		name: '用户信息',
	},
	'/userinfo/:id/addr': {
		name: '收货订单',
	},
徐立's avatar
徐立 committed
17 18
};
describe('test getBreadcrumb', () => {
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
	it('Simple url', () => {
		expect(getBreadcrumb(routerData, '/dashboard/analysis').name).toEqual('分析页');
	});
	it('Parameters url', () => {
		expect(getBreadcrumb(routerData, '/userinfo/2144').name).toEqual('用户信息');
	});
	it('The middle parameter url', () => {
		expect(getBreadcrumb(routerData, '/userinfo/2144/addr').name).toEqual('收货订单');
	});
	it('Loop through the parameters', () => {
		const urlNameList = urlToList('/userinfo/2144/addr').map(
			(url) => getBreadcrumb(routerData, url).name,
		);
		expect(urlNameList).toEqual(['用户列表', '用户信息', '收货订单']);
	});
徐立's avatar
徐立 committed
34

35 36 37 38 39 40 41 42 43 44
	it('a path', () => {
		const urlNameList = urlToList('/userinfo').map((url) => getBreadcrumb(routerData, url).name);
		expect(urlNameList).toEqual(['用户列表']);
	});
	it('Secondary path', () => {
		const urlNameList = urlToList('/userinfo/2144').map(
			(url) => getBreadcrumb(routerData, url).name,
		);
		expect(urlNameList).toEqual(['用户列表', '用户信息']);
	});
徐立's avatar
徐立 committed
45
});