forked from baron/baron-sso
64 lines
1.9 KiB
Dart
64 lines
1.9 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:userfront/core/i18n/locale_registry.dart';
|
|
import 'package:userfront/core/services/null_check_recovery.dart';
|
|
|
|
void main() {
|
|
setUp(() {
|
|
LocaleRegistry.setSupportedLocaleCodesForTest(['en', 'ko']);
|
|
});
|
|
|
|
tearDown(() {
|
|
LocaleRegistry.resetForTest();
|
|
});
|
|
|
|
test('Null check 오류 + 루트(/)면 선호 로케일 signin으로 복구', () {
|
|
final target = computeNullCheckRecoveryTarget(
|
|
exception: Exception('Null check operator used on a null value'),
|
|
uri: Uri.parse('https://sss.hmac.kr/'),
|
|
preferredLocaleCode: 'ko',
|
|
);
|
|
|
|
expect(target, '/ko/signin');
|
|
});
|
|
|
|
test('Null check 오류 + /ko면 /ko/signin으로 복구', () {
|
|
final target = computeNullCheckRecoveryTarget(
|
|
exception: Exception('Null check operator used on a null value'),
|
|
uri: Uri.parse('https://sss.hmac.kr/ko'),
|
|
preferredLocaleCode: 'en',
|
|
);
|
|
|
|
expect(target, '/ko/signin');
|
|
});
|
|
|
|
test('이미 /ko/signin이면 복구 이동하지 않음', () {
|
|
final target = computeNullCheckRecoveryTarget(
|
|
exception: Exception('Null check operator used on a null value'),
|
|
uri: Uri.parse('https://sss.hmac.kr/ko/signin'),
|
|
preferredLocaleCode: 'ko',
|
|
);
|
|
|
|
expect(target, isNull);
|
|
});
|
|
|
|
test('Null check 오류여도 /ko/profile에서는 복구 이동하지 않음', () {
|
|
final target = computeNullCheckRecoveryTarget(
|
|
exception: Exception('Null check operator used on a null value'),
|
|
uri: Uri.parse('https://sss.hmac.kr/ko/profile'),
|
|
preferredLocaleCode: 'ko',
|
|
);
|
|
|
|
expect(target, isNull);
|
|
});
|
|
|
|
test('다른 오류 메시지면 복구 이동하지 않음', () {
|
|
final target = computeNullCheckRecoveryTarget(
|
|
exception: Exception('Some other error'),
|
|
uri: Uri.parse('https://sss.hmac.kr/ko'),
|
|
preferredLocaleCode: 'ko',
|
|
);
|
|
|
|
expect(target, isNull);
|
|
});
|
|
}
|