Every tracker auth dialog (Trakt/Simkl/MDBList device-code and MAL/AniList OAuth proxy) now shares the same PendingAuthDialog affordances: a QR code for the sign-in URL, a large copyable URL with the scheme stripped, the browser launch button (hidden on Apple TV, which has no browser), and the polling spinner. On wide viewports (TV logical 960x540, desktop, phone landscape) the QR pane sits beside the instructions so the dialog no longer clips on tvOS, and the content is scrollable as an overflow safety net. Device activation codes scale down instead of wrapping.
25 lines
1.1 KiB
Dart
25 lines
1.1 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:plezy/i18n/strings.g.dart';
|
|
|
|
void main() {
|
|
test('user-facing and accessibility labels are populated in every locale', () async {
|
|
for (final locale in AppLocale.values) {
|
|
final translations = await locale.build();
|
|
final labels = <String, String>{
|
|
'hotkeys.pressToRecord': translations.hotkeys.pressToRecord,
|
|
'hotkeys.recordingShortcut': translations.hotkeys.recordingShortcut,
|
|
'accessibility.expandText': translations.accessibility.expandText,
|
|
'accessibility.collapseText': translations.accessibility.collapseText,
|
|
'watchTogether.openSessionControls': translations.watchTogether.openSessionControls,
|
|
'watchTogether.copySessionCode': translations.watchTogether.copySessionCode,
|
|
'services.deviceCode.copyCode': translations.services.deviceCode.copyCode,
|
|
'services.pendingAuth.copyUrl': translations.services.pendingAuth.copyUrl,
|
|
};
|
|
|
|
for (final MapEntry(key: key, value: value) in labels.entries) {
|
|
expect(value.trim(), isNotEmpty, reason: '${locale.languageCode}: $key');
|
|
}
|
|
}
|
|
});
|
|
}
|