Added complex test cases to validate
This commit is contained in:
parent
3afc91edfa
commit
0ca3eb7e01
5 changed files with 70 additions and 8 deletions
|
@ -1 +0,0 @@
|
|||
void main() {}
|
66
packages/validate/test/complex_data_test.dart
Normal file
66
packages/validate/test/complex_data_test.dart
Normal file
|
@ -0,0 +1,66 @@
|
|||
import 'package:angel3_validate/angel3_validate.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
final Validator orderItemSchema = Validator({
|
||||
'id': [isInt, isPositive],
|
||||
'item_no': isString,
|
||||
'item_name': isString,
|
||||
'quantity': isInt,
|
||||
'description?': isString
|
||||
});
|
||||
|
||||
final Validator orderSchema = Validator({
|
||||
'id': [isInt, isPositive],
|
||||
'order_no': isString,
|
||||
'order_items*': [isList, everyElement(orderItemSchema)]
|
||||
}, defaultValues: {
|
||||
'order_items': []
|
||||
});
|
||||
|
||||
group('json data', () {
|
||||
test('validate with child element', () {
|
||||
var orderItem = {
|
||||
'id': 1,
|
||||
'item_no': 'a1',
|
||||
'item_name': 'Apple',
|
||||
'quantity': 1
|
||||
};
|
||||
|
||||
var formData = {
|
||||
'id': 1,
|
||||
'order_no': '2',
|
||||
'order_items': [orderItem]
|
||||
};
|
||||
var result = orderSchema.check(formData);
|
||||
|
||||
expect(result.errors.isEmpty, true);
|
||||
});
|
||||
|
||||
test('validate empty child', () {
|
||||
var formData = {'id': 1, 'order_no': '2'};
|
||||
var result = orderSchema.check(formData);
|
||||
|
||||
expect(result.errors.isEmpty, true);
|
||||
});
|
||||
|
||||
test('validate invalid child field', () {
|
||||
var orderItem = {
|
||||
'id': 1,
|
||||
'item_no': 'a1',
|
||||
'item_name': 'Apple',
|
||||
'quantity': 1,
|
||||
'description': 1
|
||||
};
|
||||
|
||||
var formData = {
|
||||
'id': 1,
|
||||
'order_no': '2',
|
||||
'order_items': [orderItem]
|
||||
};
|
||||
var result = orderSchema.check(formData);
|
||||
|
||||
expect(result.errors.isEmpty, false);
|
||||
});
|
||||
});
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
void main() {}
|
|
@ -18,29 +18,27 @@ void printRecord(LogRecord rec) {
|
|||
}
|
||||
|
||||
void main() {
|
||||
Angel? app;
|
||||
late Angel app;
|
||||
late AngelHttp http;
|
||||
//TestClient client;
|
||||
|
||||
setUp(() async {
|
||||
app = Angel();
|
||||
http = AngelHttp(app!, useZone: false);
|
||||
http = AngelHttp(app, useZone: false);
|
||||
|
||||
app!.chain([validate(echoSchema)]).post('/echo',
|
||||
app.chain([validate(echoSchema)]).post('/echo',
|
||||
(RequestContext req, res) async {
|
||||
await req.parseBody();
|
||||
res.write('Hello, ${req.bodyAsMap['message']}!');
|
||||
});
|
||||
|
||||
app!.logger = Logger('angel')..onRecord.listen(printRecord);
|
||||
app.logger = Logger('angel3')..onRecord.listen(printRecord);
|
||||
//client = await connectTo(app);
|
||||
});
|
||||
|
||||
tearDown(() async {
|
||||
//await client.close();
|
||||
await http.close();
|
||||
app = null;
|
||||
//client = null;
|
||||
});
|
||||
|
||||
group('echo', () {
|
||||
|
|
Loading…
Reference in a new issue