init
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:kickkings_support/models/api_exception.dart';
|
||||
|
||||
void main() {
|
||||
test('reads the error string', () {
|
||||
final error = ApiException.fromBody(
|
||||
statusCode: 401,
|
||||
body: {'error': 'Invalid credentials'},
|
||||
);
|
||||
|
||||
expect(error.statusCode, 401);
|
||||
expect(error.message, 'Invalid credentials');
|
||||
expect(error.isUnauthorized, isTrue);
|
||||
});
|
||||
|
||||
test('appends retryAfterSeconds', () {
|
||||
final error = ApiException.fromBody(
|
||||
statusCode: 429,
|
||||
body: {
|
||||
'error': 'Too many failed login attempts. Try again later.',
|
||||
'retryAfterSeconds': 900,
|
||||
},
|
||||
);
|
||||
|
||||
expect(error.retryAfterSeconds, 900);
|
||||
expect(
|
||||
error.message,
|
||||
'Too many failed login attempts. Try again later. Retry after 900 seconds.',
|
||||
);
|
||||
});
|
||||
|
||||
test('uses the fallback when the body has no error', () {
|
||||
final error = ApiException.fromBody(
|
||||
statusCode: 503,
|
||||
body: 'unavailable',
|
||||
fallback: 'Could not reach the server.',
|
||||
);
|
||||
|
||||
expect(error.message, 'Could not reach the server.');
|
||||
expect(error.retryAfterSeconds, isNull);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user