feat: create app and api projects.

This commit is contained in:
2021-09-12 22:24:21 +08:00
commit 01327ddfe0
34 changed files with 1187 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
import 'package:dde_gesture_manager/dde_gesture_manager.dart';
import 'package:conduit_test/conduit_test.dart';
export 'package:dde_gesture_manager/dde_gesture_manager.dart';
export 'package:conduit_test/conduit_test.dart';
export 'package:test/test.dart';
export 'package:conduit/conduit.dart';
/// A testing harness for dde_gesture_manager.
///
/// A harness for testing an conduit application. Example test file:
///
/// void main() {
/// Harness harness = Harness()..install();
///
/// test("GET /path returns 200", () async {
/// final response = await harness.agent.get("/path");
/// expectResponse(response, 200);
/// });
/// }
///
class Harness extends TestHarness<DdeGestureManagerChannel> with TestHarnessORMMixin {
@override
ManagedContext? get context => channel?.context;
@override
Future onSetUp() async {
await resetData();
}
@override
Future onTearDown() async {}
@override
Future seed() async {
// restore any static data. called by resetData.
}
}
+32
View File
@@ -0,0 +1,32 @@
import 'harness/app.dart';
Future main() async {
final harness = Harness()..install();
tearDown(() async {
await harness.resetData();
});
test("POST /model", () async {
final response = await harness.agent!.post("/model", body: {"name": "Bob"});
expect(
response,
hasResponse(200,
body: {"id": isNotNull, "name": "Bob", "createdAt": isTimestamp}));
});
test("GET /model/:id returns previously created object", () async {
var response = await harness.agent!.post("/model", body: {"name": "Bob"});
final createdObject = response?.body.as();
response =
await harness.agent!.request("/model/${createdObject["id"]}").get();
expect(
response,
hasResponse(200, body: {
"id": createdObject["id"],
"name": createdObject["name"],
"createdAt": createdObject["createdAt"]
}));
});
}