|
8 | 8 | } from './generateRouteResolver' |
9 | 9 | import { ImportsMap } from '../core/utils' |
10 | 10 | import { ParamParsersMap } from './generateParamParsers' |
| 11 | +import { generateAliasWarnings } from './generateAliasWarnings' |
11 | 12 |
|
12 | 13 | const DEFAULT_OPTIONS = resolveOptions({}) |
13 | 14 | let DEFAULT_STATE: Parameters<typeof generateRouteRecord>[0]['state'] = { |
@@ -1344,5 +1345,42 @@ describe('generateRouteResolver', () => { |
1344 | 1345 | expect(resolver).toMatch(/createFixedResolver\(\[[\s\S]*__route_0/) |
1345 | 1346 | expect(resolver).toMatch(/createFixedResolver\(\[[\s\S]*__route_1/) |
1346 | 1347 | }) |
| 1348 | + |
| 1349 | + it('warns on relative aliases', () => { |
| 1350 | + const tree = new PrefixTree(DEFAULT_OPTIONS) |
| 1351 | + const node = tree.insert('admin/users', 'admin/users.vue') |
| 1352 | + node.setCustomRouteBlock('admin/users.vue', { alias: ['users'] }) |
| 1353 | + |
| 1354 | + const warnings = generateAliasWarnings(tree) |
| 1355 | + |
| 1356 | + expect(warnings).toContain('console.warn') |
| 1357 | + expect(warnings).toContain('Alias "users"') |
| 1358 | + expect(warnings).toContain('must be absolute') |
| 1359 | + }) |
| 1360 | + |
| 1361 | + it('does not warn on absolute aliases', () => { |
| 1362 | + const tree = new PrefixTree(DEFAULT_OPTIONS) |
| 1363 | + const node = tree.insert('users', 'users.vue') |
| 1364 | + node.setCustomRouteBlock('users.vue', { alias: ['/people'] }) |
| 1365 | + |
| 1366 | + const warnings = generateAliasWarnings(tree) |
| 1367 | + |
| 1368 | + expect(warnings).toBe('') |
| 1369 | + }) |
| 1370 | + |
| 1371 | + it('warns on each relative alias individually', () => { |
| 1372 | + const tree = new PrefixTree(DEFAULT_OPTIONS) |
| 1373 | + const node = tree.insert('users', 'users.vue') |
| 1374 | + node.setCustomRouteBlock('users.vue', { |
| 1375 | + alias: ['people', '/members', 'folks'], |
| 1376 | + }) |
| 1377 | + |
| 1378 | + const warnings = generateAliasWarnings(tree) |
| 1379 | + |
| 1380 | + expect(warnings).toContain('"people"') |
| 1381 | + expect(warnings).toContain('"folks"') |
| 1382 | + expect(warnings).not.toContain('"members"') |
| 1383 | + expect(warnings).not.toContain('"/members"') |
| 1384 | + }) |
1347 | 1385 | }) |
1348 | 1386 | }) |
0 commit comments