Skip to content

Commit

Permalink
v8
Browse files Browse the repository at this point in the history
  • Loading branch information
f3ath committed Jul 2, 2024
1 parent 86db956 commit 70b4bc4
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions test/unit/http/cors_middleware_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import 'dart:convert';

import 'package:http_interop/http_interop.dart';
import 'package:json_api/http.dart';
import 'package:test/expect.dart';
import 'package:test/scaffolding.dart';

main() {
Response response = Response(200, Body.text('hello', utf8), Headers());

Future<Response> handler(Request rq) async => response;

group('CORS Middleware', () {
test('Sets the headers', () async {
final rq = Request(
'get',
Uri(host: 'localhost'),
Body(),
Headers.from({
'origin': ['foo']
}));
final rs = await corsMiddleware(handler)(rq);
expect(rs.statusCode, equals(200));
expect(rs.headers['Access-Control-Allow-Origin'], equals(['foo']));
expect(rs.headers['Access-Control-Expose-Headers'], equals(['Location']));
});

test('Responds to OPTIONS', () async {
final rq = Request(
'options',
Uri(host: 'localhost'),
Body(),
Headers.from({
'origin': ['foo']
}));
final rs = await corsMiddleware(handler)(rq);
expect(rs.statusCode, equals(204));
expect(rs.headers['Access-Control-Allow-Origin'], equals(['foo']));
expect(rs.headers['Access-Control-Expose-Headers'], equals(['Location']));
expect(rs.headers['Access-Control-Allow-Methods'],
equals(['POST', 'GET', 'DELETE', 'PATCH', 'OPTIONS']));
expect(rs.headers['Access-Control-Allow-Headers'], equals(['*']));
});

test('Responds to OPTIONS with custom headers', () async {
final rq = Request(
'options',
Uri(host: 'localhost'),
Body(),
Headers.from({
'origin': ['foo'],
'Access-Control-Request-Method': ['PUT', 'POST'],
'Access-Control-Request-Headers': ['foo', 'bar'],
}));
final rs = await corsMiddleware(handler)(rq);
expect(rs.statusCode, equals(204));
expect(rs.headers['Access-Control-Allow-Origin'], equals(['foo']));
expect(rs.headers['Access-Control-Expose-Headers'], equals(['Location']));
expect(
rs.headers['Access-Control-Allow-Methods'], equals(['PUT', 'POST']));
expect(
rs.headers['Access-Control-Allow-Headers'], equals(['foo', 'bar']));
});
});
}

0 comments on commit 70b4bc4

Please sign in to comment.