From b931c7f94f1ff9902f15a0353ccbcd9a1a9e2b53 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Fri, 8 Aug 2025 22:07:49 +0200 Subject: [PATCH] test: more --- .../matchers/matcher-pattern.spec.ts | 22 +++++++++++++++++++ .../matchers/matcher-pattern.ts | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) 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 fdfd00ba..5ddf274f 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 @@ -195,4 +195,26 @@ describe('MatcherPatternPathCustom', () => { expect(pattern.build({ teamId: ['123', '456'] })).toBe('/teams/123/456/b') expect(pattern.build({ teamId: [] })).toBe('/teams/b') }) + + it('multiple params', () => { + const pattern = new MatcherPatternPathCustomParams( + /^\/teams\/([^/]+?)\/([^/]+?)$/i, + { + teamId: {}, + otherId: {}, + }, + ['teams', 0, 0] + ) + + expect(pattern.match('/teams/123/456')).toEqual({ + teamId: '123', + otherId: '456', + }) + expect(() => pattern.match('/teams/123')).toThrow() + expect(() => pattern.match('/teams/123/456/c')).toThrow() + expect(() => pattern.match('/teams/')).toThrow() + expect(pattern.build({ teamId: '123', otherId: '456' })).toBe( + '/teams/123/456' + ) + }) }) diff --git a/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.ts b/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.ts index 866114cb..00ce26bd 100644 --- a/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.ts +++ b/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.ts @@ -208,7 +208,7 @@ interface MatcherPatternPathCustomParamOptions< repeat?: boolean // TODO: not needed because in the regexp, the value is undefined if the group is optional and not given optional?: boolean - parser: Param_GetSet + parser?: Param_GetSet } /** -- 2.47.3