File size: 1,099 Bytes
52e2700 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import 'package:flutter_test/flutter_test.dart';
import 'package:cachy/data/services/api_client.dart';
void main() {
test('friendly messages never leak bodies or tracebacks', () {
expect(ApiException(500, '{"detail":"X","traceback":"Trace..."}').friendlyMessage,
'Something went wrong on our side. Try again in a moment.');
expect(ApiException(429, '{"error":"quota"}').friendlyMessage,
"You've hit today's limit. It resets at midnight UTC.");
expect(ApiException(401, 'x').friendlyMessage,
'Session expired — please sign in again.');
expect(ApiException(404, 'x').friendlyMessage,
"That card isn't there anymore.");
for (final code in [400, 401, 404, 429, 500, 503]) {
final msg = ApiException(code, 'traceback secret').friendlyMessage;
expect(msg.contains('traceback'), isFalse);
expect(msg.contains('secret'), isFalse);
}
});
test('friendlyError handles non-Api exceptions', () {
expect(friendlyError(Exception('SocketException: conn refused')),
"Can't reach Cachy. Check your connection.");
});
}
|