From 568bd407a55e7cbf5405d284844d47893741197b Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Sat, 23 Aug 2025 14:59:26 +0200 Subject: [PATCH] test: todo --- .../matchers/matcher-pattern.spec.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.spec.ts b/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.spec.ts index 083f2fab..ac28af0a 100644 --- a/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.spec.ts +++ b/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.spec.ts @@ -161,6 +161,25 @@ describe('MatcherPatternPathDynamic', () => { expect(pattern.build({ teamId: '' })).toBe('/teams/b') }) + it.todo('optional param in the end', () => { + const pattern = new MatcherPatternPathDynamic( + /^\/teams(?:\/([^/]+?))?\/b$/i, + { + teamId: {}, + }, + ['teams', 0, 'b'] + ) + + expect(pattern.match('/teams/b')).toEqual({ teamId: null }) + expect(pattern.match('/teams/123/b')).toEqual({ teamId: '123' }) + expect(() => pattern.match('/teams/123/c')).toThrow() + expect(() => pattern.match('/teams/123/b/c')).toThrow() + expect(() => pattern.match('/teams//b')).toThrow() + expect(pattern.build({ teamId: '123' })).toBe('/teams/123/b') + expect(pattern.build({ teamId: null })).toBe('/teams/b') + expect(pattern.build({ teamId: '' })).toBe('/teams/b') + }) + it('repeatable param', () => { const pattern = new MatcherPatternPathDynamic( /^\/teams\/(.+?)\/b$/i, -- 2.47.3