Added mock
This commit is contained in:
parent
16f0ad0db6
commit
e2ab72ba96
4 changed files with 31 additions and 2 deletions
|
@ -1,4 +1,5 @@
|
|||
# angel_test
|
||||
[](https://pub.dartlang.org/packages/angel_test)
|
||||
[](https://travis-ci.org/angel-dart/test)
|
||||
|
||||
Testing utility library for the Angel framework.
|
||||
|
|
|
@ -44,11 +44,33 @@ Future<TestClient> connectTo(Angel app,
|
|||
}
|
||||
|
||||
Future<MockHttpResponse> mock(Angel app, String method, Uri uri,
|
||||
{Iterable<Cookie> cookies: const [],
|
||||
{body,
|
||||
Iterable<Cookie> cookies: const [],
|
||||
Map<String, dynamic> headers: const {}}) async {
|
||||
var rq = new MockHttpRequest(method, uri);
|
||||
rq.cookies.addAll(cookies ?? []);
|
||||
headers.forEach(rq.headers.add);
|
||||
|
||||
if (body is! Map) {
|
||||
rq.write(body);
|
||||
} else if (rq.headers.contentType == null ||
|
||||
rq.headers.contentType.mimeType == ContentType.JSON.mimeType) {
|
||||
rq
|
||||
..headers.contentType = ContentType.JSON
|
||||
..write(JSON.encode(body));
|
||||
} else if (rq.headers.contentType.mimeType ==
|
||||
'application/x-www-form-urlencoded') {
|
||||
rq
|
||||
..headers.contentType =
|
||||
new ContentType('application', 'x-www-form-urlencoded')
|
||||
..write(body.keys.fold<List<String>>(
|
||||
[],
|
||||
(out, k) =>
|
||||
out..add('$k=' + Uri.encodeComponent(body[k]))).join('&'));
|
||||
} else
|
||||
throw new UnsupportedError(
|
||||
'mock() only supports sending JSON or URL-encoded bodies.');
|
||||
|
||||
await rq.close();
|
||||
await app.handleRequest(rq);
|
||||
return rq.response;
|
||||
|
|
|
@ -2,7 +2,7 @@ author: "Tobe O <thosakwe@gmail.com>"
|
|||
description: "Testing utility library for the Angel framework."
|
||||
homepage: "https://github.com/angel-dart/test.git"
|
||||
name: "angel_test"
|
||||
version: "1.0.0"
|
||||
version: "1.0.1"
|
||||
dependencies:
|
||||
angel_client: "^1.0.0-dev+16"
|
||||
angel_framework: "^1.0.0-dev"
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'dart:convert';
|
||||
import 'package:angel_framework/angel_framework.dart' as server;
|
||||
import 'package:angel_test/angel_test.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
@ -21,6 +22,11 @@ main() {
|
|||
app = null;
|
||||
});
|
||||
|
||||
test('mock()', () async {
|
||||
var response = await mock(app, 'GET', Uri.parse('/hello'));
|
||||
expect(await response.transform(UTF8.decoder).join(), equals('"Hello"'));
|
||||
});
|
||||
|
||||
group('isJson+hasStatus', () {
|
||||
test('get', () async {
|
||||
final response = await testClient.get('/hello');
|
||||
|
|
Loading…
Reference in a new issue