Testing is complete!! And a nice build runner script to boot
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:backend/service/db_access.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:shared_models/room.dart';
|
||||
import 'package:shared_models/user.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
const baseUrl = 'http://localhost:8080'; // Adjust as needed
|
||||
|
||||
test('Complete room creation and ping flow', () async {
|
||||
// 1. Create Room
|
||||
final createRoomResponse = await http.post(
|
||||
Uri.parse('$baseUrl/create_room'),
|
||||
);
|
||||
|
||||
expect(createRoomResponse.statusCode, 200);
|
||||
|
||||
final createRoomData = CreateRoomResponse.fromJson(
|
||||
json.decode(createRoomResponse.body) as Map<String, dynamic>,
|
||||
);
|
||||
expect(createRoomData.success, true);
|
||||
expect(createRoomData.roomCode, isNotNull);
|
||||
|
||||
final roomCode = createRoomData.roomCode!;
|
||||
|
||||
// 2. Join Room
|
||||
final joinRoomResponse = await http.post(
|
||||
Uri.parse('$baseUrl/join_room'),
|
||||
body: jsonEncode(JoinRoomRequest(username: 'testUser123', roomCode: createRoomData.roomCode!).toJson()),
|
||||
headers: {'Content-Type': 'application/json'},
|
||||
);
|
||||
|
||||
expect(joinRoomResponse.statusCode, 200);
|
||||
|
||||
final joinRoomData = JoinRoomResponse.fromJson(
|
||||
json.decode(joinRoomResponse.body) as Map<String, dynamic>,
|
||||
);
|
||||
expect(joinRoomData.success, true);
|
||||
expect(joinRoomData.token, isNotNull);
|
||||
expect(joinRoomData.uuid, isNotNull);
|
||||
|
||||
final token = joinRoomData.token!;
|
||||
|
||||
// 3. Ping Room
|
||||
final pingResponse = await http.get(
|
||||
Uri.parse('$baseUrl/room/$roomCode/ping'),
|
||||
headers: {
|
||||
'Authorization': 'Bearer $token',
|
||||
},
|
||||
);
|
||||
|
||||
expect(pingResponse.statusCode, 200);
|
||||
|
||||
final testUser = await Db.getUserById(joinRoomData.uuid!);
|
||||
expect(testUser, isNotNull);
|
||||
expect(testUser!.uuid, joinRoomData.uuid);
|
||||
|
||||
final gameRoom = await Db.getRoomByCode(createRoomData.roomCode);
|
||||
expect(gameRoom, isNotNull);
|
||||
expect(gameRoom!.code, createRoomData.roomCode);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user