// get nullable import 'dart:convert'; import 'package:backend_dart/domain/entities/user.dart'; import 'package:backend_dart/domain/errors/error.dart'; import 'package:fpdart/fpdart.dart'; import 'package:shelf/shelf.dart'; import 'package:test/test.dart'; extension NullableGet on TaskEither { // !THIS IS ONLY FOR TESTING PURPOSES! Future get get { return match((e) => null, identity).run(); } } String? extractSessionTokenFromCookie(String? token) { if (token == null) return null; final parts = token.split('='); if (parts[0] == 'session_token' && parts[1].isNotEmpty) { return parts[1]; } return null; } Future createLoggedInToken( User? user, Handler handler, { String password = 'password', }) async { if (user == null) { fail('User creation failed'); } final responseLogin = await handler(Request( 'POST', Uri.parse('http://localhost/api/auth/login'), headers: { 'Content-Type': 'application/json', }, body: jsonEncode( { 'email': user.email, 'password': password, }, ), )); return extractSessionTokenFromCookie(responseLogin.headers['Set-Cookie']); }