11import 'dart:io' ;
22
33import 'package:dart_frog/dart_frog.dart' ;
4- import 'package:mocktail/mocktail .dart' ;
4+ import 'package:http/http .dart' as http ;
55import 'package:test/test.dart' ;
66
7- class _MockRequestContext extends Mock implements RequestContext {}
8-
97void main () {
108 test ('values can be provided and read via middleware' , () async {
119 const value = '__test_value__' ;
@@ -21,13 +19,14 @@ void main() {
2119 final handler =
2220 const Pipeline ().addMiddleware (middleware).addHandler (onRequest);
2321
24- final request = Request .get (Uri .parse ('http://localhost/' ));
25- final context = _MockRequestContext ();
26- when (() => context.request).thenReturn (request);
27- final response = await handler (context);
22+ final server = await serve (handler, 'localhost' , 3010 );
23+ final client = http.Client ();
24+ final response = await client.get (Uri .parse ('http://localhost:3010/' ));
2825
2926 await expectLater (response.statusCode, equals (HttpStatus .ok));
30- await expectLater (await response.body (), equals (value));
27+ await expectLater (response.body, equals (value));
28+
29+ await server.close ();
3130 });
3231
3332 test ('descendant providers can access provided values' , () async {
@@ -46,29 +45,38 @@ void main() {
4645 final handler =
4746 const Pipeline ().addMiddleware (middleware).addHandler (onRequest);
4847
49- final request = Request .get (Uri .parse ('http://localhost/' ));
50- final context = _MockRequestContext ();
51- when (() => context.request).thenReturn (request);
52- final response = await handler (context);
48+ final server = await serve (handler, 'localhost' , 3011 );
49+ final client = http.Client ();
50+ final response = await client.get (Uri .parse ('http://localhost:3011/' ));
5351
5452 await expectLater (response.statusCode, equals (HttpStatus .ok));
55- await expectLater (await response.body (), equals (url));
53+ await expectLater (response.body, equals (url));
54+
55+ await server.close ();
5656 });
5757
5858 test ('A StateError is thrown when reading an un-provided value' , () async {
59+ Object ? exception;
5960 Response onRequest (RequestContext context) {
60- context.read <Uri >();
61+ try {
62+ context.read <Uri >();
63+ } catch (e) {
64+ exception = e;
65+ }
6166 return Response ();
6267 }
6368
6469 final handler = const Pipeline ()
6570 .addMiddleware ((handler) => handler)
6671 .addHandler (onRequest);
6772
68- final request = Request .get (Uri .parse ('http://localhost/' ));
69- final context = _MockRequestContext ();
70- when (() => context.request).thenReturn (request);
73+ final server = await serve (handler, 'localhost' , 3012 );
74+ final client = http.Client ();
75+ final response = await client.get (Uri .parse ('http://localhost:3012/' ));
76+
77+ await expectLater (response.statusCode, equals (HttpStatus .ok));
78+ expect (exception, isA <StateError >());
7179
72- await expectLater (() => handler (context), throwsStateError );
80+ await server. close ( );
7381 });
7482}
0 commit comments