diff --git a/packages/supabase_flutter/lib/src/local_storage.dart b/packages/supabase_flutter/lib/src/local_storage.dart index 4fcc9638..3113bf4d 100644 --- a/packages/supabase_flutter/lib/src/local_storage.dart +++ b/packages/supabase_flutter/lib/src/local_storage.dart @@ -196,7 +196,13 @@ class MigrationLocalStorage extends LocalStorage { final hasHive = await hiveLocalStorage.hasAccessToken(); if (hasHive) { final accessToken = await hiveLocalStorage.accessToken(); - await sharedPreferencesLocalStorage.persistSession(accessToken!); + final session = + Session.fromJson(jsonDecode(accessToken!)['currentSession']); + if (session == null) { + return; + } + await sharedPreferencesLocalStorage + .persistSession(jsonEncode(session.toJson())); await hiveLocalStorage.removePersistedSession(); } if (Hive.box(_hiveBoxName).isEmpty) { diff --git a/packages/supabase_flutter/test/widget_test.dart b/packages/supabase_flutter/test/widget_test.dart index 47f9eff2..5d04f89d 100644 --- a/packages/supabase_flutter/test/widget_test.dart +++ b/packages/supabase_flutter/test/widget_test.dart @@ -1,3 +1,4 @@ +import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; @@ -5,6 +6,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:path/path.dart' as path; import 'package:supabase_flutter/supabase_flutter.dart'; +import 'utils.dart'; import 'widget_test_stubs.dart'; void main() { @@ -37,15 +39,21 @@ void main() { () async { final hiveLocalStorage = TestHiveLocalStorage(); await hiveLocalStorage.initialize(); - await hiveLocalStorage.persistSession('test'); + final (:accessToken, :sessionString) = getSessionData(DateTime.now()); + await hiveLocalStorage + .persistSession('{"currentSession":$sessionString}'); final boxFile = File("${path.current}/auth_test/supabase_authentication.hive"); expect(await boxFile.exists(), true); final migrationLocalStorage = TestMigrationLocalStorage(); await migrationLocalStorage.initialize(); + + final migratedSessionString = await migrationLocalStorage.accessToken(); + final migratedSession = + Session.fromJson(jsonDecode(migratedSessionString!)); expect(await boxFile.exists(), false); - expect(await migrationLocalStorage.accessToken(), "test"); + expect(accessToken, migratedSession!.accessToken); expect(await boxFile.parent.exists(), false); }, );