Skip to content

Commit

Permalink
test: Updating and implementing tests for 'date' header to supporte l…
Browse files Browse the repository at this point in the history
…azy initialization
  • Loading branch information
klkucaj committed Dec 17, 2024
1 parent 7708d0c commit f83c6c1
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
21 changes: 21 additions & 0 deletions test/headers/basic/date_header_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ void main() {
() async => await getServerRequestHeaders(
server: server,
headers: {'date': ''},
// trigger lazy initialization
onHeadersParsed: (headers) => headers?.date,
),
throwsA(
isA<BadRequestException>().having(
Expand All @@ -60,6 +62,8 @@ void main() {
() async => await getServerRequestHeaders(
server: server,
headers: {'date': 'invalid-date-format'},
// trigger lazy initialization
onHeadersParsed: (headers) => headers?.date,
),
throwsA(
isA<BadRequestException>().having(
Expand All @@ -72,6 +76,20 @@ void main() {
},
);

test(
'when a Date header with an invalid date format is passed '
'then the server does not respond with a bad request if the headers '
'is not actually used',
() async {
Headers headers = await getServerRequestHeaders(
server: server,
headers: {'date': 'invalid-date-format'},
);

expect(headers, isNotNull);
},
);

test(
'when a valid Date header is passed then it should parse the date correctly',
() async {
Expand Down Expand Up @@ -155,6 +173,7 @@ void main() {
Headers headers = await getServerRequestHeaders(
server: server,
headers: {'date': ''},
onHeadersParsed: (headers) => headers?.date,
);

expect(
Expand All @@ -172,6 +191,7 @@ void main() {
Headers headers = await getServerRequestHeaders(
server: server,
headers: {'date': 'invalid-date-format'},
onHeadersParsed: (headers) => headers?.date,
);

expect(headers.date, isNull);
Expand All @@ -184,6 +204,7 @@ void main() {
Headers headers = await getServerRequestHeaders(
server: server,
headers: {'date': 'invalid-date-format'},
onHeadersParsed: (headers) => headers?.date,
);

expect(
Expand Down
5 changes: 5 additions & 0 deletions test/headers/headers_test_utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,17 @@ class BadRequestException implements Exception {
Future<Headers> getServerRequestHeaders({
required RelicServer server,
required Map<String, String> headers,
// Since we implement lazy initialization, we need to pass a function
// in order to access the headers that we are interested in and trigger
// the lazy initialization.
void Function(Headers?)? onHeadersParsed,
}) async {
Headers? parsedHeaders;

server.mountAndStart(
(Request request) {
parsedHeaders = request.headers;
onHeadersParsed?.call(parsedHeaders);
return Response.ok();
},
);
Expand Down

0 comments on commit f83c6c1

Please sign in to comment.