Skip to content

Commit 3efee4a

Browse files
authored
fix(dart_frog): support multiple routeNotFound.read calls (#28)
1 parent 1222d1a commit 3efee4a

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

packages/dart_frog/lib/src/router.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ class _RouteNotFoundResponse extends Response {
103103
static const _message = 'Route not found';
104104
static final _messageBytes = utf8.encode(_message);
105105

106+
@override
107+
shelf.Response get _response => super._response.change(body: _messageBytes);
108+
106109
@override
107110
Stream<List<int>> bytes() => Stream<List<int>>.value(_messageBytes);
108111

packages/dart_frog/test/src/serve_test.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,17 @@ void main() {
1313
expect(response.statusCode, equals(HttpStatus.ok));
1414
await server.close();
1515
});
16+
17+
test('can return multiple 404s', () async {
18+
final server = await serve(Router(), 'localhost', 3001);
19+
final client = HttpClient();
20+
var request = await client.getUrl(Uri.parse('http://localhost:3001'));
21+
var response = await request.close();
22+
expect(response.statusCode, equals(HttpStatus.notFound));
23+
request = await client.getUrl(Uri.parse('http://localhost:3001'));
24+
response = await request.close();
25+
expect(response.statusCode, equals(HttpStatus.notFound));
26+
await server.close();
27+
});
1628
});
1729
}

0 commit comments

Comments
 (0)