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
|
# angel_test
|
||||||
|
[](https://pub.dartlang.org/packages/angel_test)
|
||||||
[](https://travis-ci.org/angel-dart/test)
|
[](https://travis-ci.org/angel-dart/test)
|
||||||
|
|
||||||
Testing utility library for the Angel framework.
|
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,
|
Future<MockHttpResponse> mock(Angel app, String method, Uri uri,
|
||||||
{Iterable<Cookie> cookies: const [],
|
{body,
|
||||||
|
Iterable<Cookie> cookies: const [],
|
||||||
Map<String, dynamic> headers: const {}}) async {
|
Map<String, dynamic> headers: const {}}) async {
|
||||||
var rq = new MockHttpRequest(method, uri);
|
var rq = new MockHttpRequest(method, uri);
|
||||||
rq.cookies.addAll(cookies ?? []);
|
rq.cookies.addAll(cookies ?? []);
|
||||||
headers.forEach(rq.headers.add);
|
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 rq.close();
|
||||||
await app.handleRequest(rq);
|
await app.handleRequest(rq);
|
||||||
return rq.response;
|
return rq.response;
|
||||||
|
|
|
@ -2,7 +2,7 @@ author: "Tobe O <thosakwe@gmail.com>"
|
||||||
description: "Testing utility library for the Angel framework."
|
description: "Testing utility library for the Angel framework."
|
||||||
homepage: "https://github.com/angel-dart/test.git"
|
homepage: "https://github.com/angel-dart/test.git"
|
||||||
name: "angel_test"
|
name: "angel_test"
|
||||||
version: "1.0.0"
|
version: "1.0.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
angel_client: "^1.0.0-dev+16"
|
angel_client: "^1.0.0-dev+16"
|
||||||
angel_framework: "^1.0.0-dev"
|
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_framework/angel_framework.dart' as server;
|
||||||
import 'package:angel_test/angel_test.dart';
|
import 'package:angel_test/angel_test.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
@ -21,6 +22,11 @@ main() {
|
||||||
app = null;
|
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', () {
|
group('isJson+hasStatus', () {
|
||||||
test('get', () async {
|
test('get', () async {
|
||||||
final response = await testClient.get('/hello');
|
final response = await testClient.get('/hello');
|
||||||
|
|
Loading…
Reference in a new issue