57 lines
1.6 KiB
Dart
57 lines
1.6 KiB
Dart
|
import 'package:angel_framework/angel_framework.dart';
|
||
|
import 'package:angel_relations/angel_relations.dart' as relations;
|
||
|
import 'package:angel_seeder/angel_seeder.dart';
|
||
|
import 'package:test/test.dart';
|
||
|
import 'common.dart';
|
||
|
|
||
|
main() {
|
||
|
Angel app;
|
||
|
|
||
|
setUp(() async {
|
||
|
app = new Angel()
|
||
|
..use('/authors', new MapService())
|
||
|
..use('/books', new MapService());
|
||
|
|
||
|
await app.configure(seed(
|
||
|
'authors',
|
||
|
new SeederConfiguration<Map>(
|
||
|
count: 10,
|
||
|
template: {'name': (Faker faker) => faker.person.name()},
|
||
|
callback: (Map author, seed) {
|
||
|
return seed(
|
||
|
'books',
|
||
|
new SeederConfiguration(delete: false, count: 10, template: {
|
||
|
'authorId': author['id'],
|
||
|
'title': (Faker faker) =>
|
||
|
'I love to eat ${faker.food.dish()}'
|
||
|
}));
|
||
|
})));
|
||
|
|
||
|
app.service('books').afterAll(relations.belongsTo('authors'));
|
||
|
});
|
||
|
|
||
|
test('index', () async {
|
||
|
var books = await app.service('books').index();
|
||
|
print(books);
|
||
|
|
||
|
expect(books, allOf(isList, isNotEmpty));
|
||
|
|
||
|
for (Map book in books) {
|
||
|
expect(book.keys, contains('author'));
|
||
|
|
||
|
Map author = book['author'];
|
||
|
expect(author['id'], equals(book['authorId']));
|
||
|
}
|
||
|
});
|
||
|
|
||
|
test('create', () async {
|
||
|
var warAndPeace = await app
|
||
|
.service('books')
|
||
|
.create(new Book(title: 'War and Peace').toJson());
|
||
|
|
||
|
print(warAndPeace);
|
||
|
expect(warAndPeace.keys, contains('author'));
|
||
|
expect(warAndPeace['author'], isNull);
|
||
|
});
|
||
|
}
|