Skip to content

Commit ffa94b1

Browse files
authoredOct 8, 2024··
fix: support WCs with result property (#889)
1 parent 070e918 commit ffa94b1

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed
 

‎src/resolver/resolver.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,14 @@ function isDescendantRoute<T, R extends AnyObject, C extends AnyObject>(
3636
}
3737

3838
function isRouteContext<T, R extends AnyObject, C extends AnyObject>(value: unknown): value is RouteContext<T, R, C> {
39-
return !!value && typeof value === 'object' && 'result' in value;
39+
return (
40+
!!value &&
41+
typeof value === 'object' &&
42+
'next' in value &&
43+
'params' in value &&
44+
'result' in value &&
45+
'route' in value
46+
);
4047
}
4148

4249
export interface ResolutionErrorOptions extends ErrorOptions {

‎test/resolver/resolver.spec.ts

+14
Original file line numberDiff line numberDiff line change
@@ -773,6 +773,20 @@ describe('Resolver', () => {
773773
expect(action.calledOnce).to.be.true;
774774
expect(middleware.calledOnce).to.be.true;
775775
});
776+
777+
it('should match routes with object result', async () => {
778+
const resolver = new Resolver([
779+
{
780+
action() {
781+
return { result: 'ok' };
782+
},
783+
path: '/match',
784+
},
785+
]);
786+
787+
const context = await resolver.resolve('/match');
788+
expect(context).to.have.property('result').that.deep.equals({ result: 'ok' });
789+
});
776790
});
777791

778792
// describe('Resolver.__createUrl(path, base) hook', () => {

0 commit comments

Comments
 (0)