Files
sxchnge/frontend/packages/sxchnge_auth/lib/src/services/dummy.dart
T

48 lines
1.4 KiB
Dart

import '../dto/results.dart';
import '../mappers/results.dart';
import '../models/auth.dart';
import 'contracts.dart';
import 'verification.dart';
/// Deterministic local simulation. No network, storage, credentials or sessions
/// are retained. Configure failures explicitly rather than using magic emails.
class DummyLoginService implements LoginService, SimulationInfo {
@override
bool get isSimulated => true;
const DummyLoginService({
this.delay = const Duration(milliseconds: 600),
this.failure,
});
final Duration delay;
final AuthError? failure;
@override
Future<AuthResult> login(LoginRequest request) async {
await Future<void>.delayed(delay);
if (failure case final error?) throw AuthException(error);
return AuthMapper.fromDTO(
const AuthDTO(userId: 'demo-user', simulated: true),
);
}
}
class DummySignupService implements SignupService, SimulationInfo {
@override
bool get isSimulated => true;
const DummySignupService({
this.delay = const Duration(milliseconds: 600),
this.failure,
});
final Duration delay;
final AuthError? failure;
@override
Future<AuthResult> signup(SignupRequest request) async {
await Future<void>.delayed(delay);
if (failure case final error?) throw AuthException(error);
return AuthMapper.fromDTO(
const AuthDTO(userId: 'demo-user', simulated: true),
);
}
}