From b7abc9b49c96010bccc1b2779d233f933d42087a Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Mon, 1 May 2023 11:20:28 +0200 Subject: [PATCH] fix(options): dotNesting --- src/core/tree.spec.ts | 34 ++++++++++++++++++++++++++++++++++ src/core/tree.ts | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/core/tree.spec.ts b/src/core/tree.spec.ts index ae606fc2..0d63b115 100644 --- a/src/core/tree.spec.ts +++ b/src/core/tree.spec.ts @@ -464,4 +464,38 @@ describe('Tree', () => { expect(aNested.value.components.get('default')).toBe('a/nested.page.vue') expect(aNested.fullPath).toBe('/a/nested') }) + + describe('dot nesting', () => { + it('transforms dots into nested routes by default', () => { + const tree = createPrefixTree(DEFAULT_OPTIONS) + tree.insert('users.new.vue') + expect(tree.children.size).toBe(1) + const users = tree.children.get('users.new')! + expect(users.value).toMatchObject({ + rawSegment: 'users.new', + pathSegment: 'users/new', + path: '/users/new', + _type: TreeNodeType.static, + }) + }) + + it.only('can ignore dot nesting', () => { + const tree = createPrefixTree({ + ...DEFAULT_OPTIONS, + pathParser: { + dotNesting: false, + }, + }) + tree.insert('1.2.3-lesson.vue') + expect(tree.children.size).toBe(1) + const lesson = tree.children.get('1.2.3-lesson')! + + expect(lesson.value).toMatchObject({ + rawSegment: '1.2.3-lesson', + pathSegment: '1.2.3-lesson', + path: '/1.2.3-lesson', + _type: TreeNodeType.static, + }) + }) + }) }) diff --git a/src/core/tree.ts b/src/core/tree.ts index 91ecebcf..05506adc 100644 --- a/src/core/tree.ts +++ b/src/core/tree.ts @@ -45,7 +45,7 @@ export class TreeNode { this.value = createTreeNodeValue( filePath, parent?.value, - options.treeNodeOptions + options.treeNodeOptions || options.pathParser ) }