mirror of
https://github.com/kuhyx/todo-app.git
synced 2026-11-10 18:07:03 +01:00
Some checks are pending
release-apk / release (APK) (push) Waiting to run
The account's password grant is retired fleet-wide (see link_google.py / seed_session.py in ~/utils/crdt-sync), so desktop's Firebase form could never have connected regardless of provisioning. Desktop-as-web can't use the in-browser Google Sign-In button either (google_platform_web.dart hard-codes googleSignInSupported = false), so it needs the same session-seeding path the Python daemons already use: seed_session.py now includes todo, and the wrapper's new /sync-credentials route serves that seeded session to loadAccount() once per launch, then closes for the rest of the process. Also stops the status line reporting a bare "Synced" while running over the GitHub mirror alone with Firebase disconnected -- SyncResult now carries firebaseConnected so the UI can say "GitHub-only (Firebase not connected)". Includes the prior session's Google Sign-In one-tap addition (google_sign_in_backend.dart and friends), which this builds on. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FPsyKQRX8ZwJpUqg37jp83
34 lines
1.3 KiB
Dart
34 lines
1.3 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:todo/sync/google_sign_in_backend.dart';
|
|
|
|
void main() {
|
|
group('googleIdToken', () {
|
|
test('returns the token the sign-in function yields', () async {
|
|
// The injected path: proves the closure is what feeds crdt_sync, and
|
|
// that no platform channel is touched to get there.
|
|
expect(
|
|
await googleIdToken(signInFn: () async => 'a-token'),
|
|
'a-token',
|
|
);
|
|
});
|
|
|
|
test('passes a null cancellation straight through', () async {
|
|
// Dismissing the picker is an ordinary outcome, not an error: the
|
|
// caller falls back to the password path.
|
|
expect(await googleIdToken(signInFn: () async => null), isNull);
|
|
});
|
|
|
|
test('reports "not configured" when the client id is missing', () async {
|
|
// A build without --dart-define=GOOGLE_SERVER_CLIENT_ID must fall back
|
|
// rather than failing deep inside the plugin with an opaque message.
|
|
expect(await googleIdToken(serverClientId: ''), isNull);
|
|
});
|
|
|
|
test('pins the uid the security rules expect', () {
|
|
// If this ever drifts from database.rules.json, a Google sign-in would
|
|
// be accepted here and then denied every read and write.
|
|
expect(kSyncUid, 'OvA2REQyLIhAHOEjzwS1o877rgG3');
|
|
});
|
|
});
|
|
}
|