feat: Add login integration test (WIP), update notes feature

This commit is contained in:
Anton Stubenbord
2024-01-06 19:23:30 +01:00
parent 64d49a4a24
commit 497777c52b
20 changed files with 465 additions and 418 deletions

View File

@@ -4,6 +4,7 @@ import 'package:flutter/widgets.dart';
import 'package:hive_flutter/adapters.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/bloc/transient_error.dart';
import 'package:paperless_mobile/core/database/hive/hive_config.dart';
import 'package:paperless_mobile/core/database/hive/hive_extensions.dart';
import 'package:paperless_mobile/core/database/tables/global_settings.dart';
@@ -13,6 +14,7 @@ import 'package:paperless_mobile/core/database/tables/local_user_settings.dart';
import 'package:paperless_mobile/core/database/tables/user_credentials.dart';
import 'package:paperless_mobile/core/factory/paperless_api_factory.dart';
import 'package:paperless_mobile/core/interceptor/language_header.interceptor.dart';
import 'package:paperless_mobile/core/security/session_manager_impl.dart';
import 'package:paperless_mobile/features/logging/data/logger.dart';
import 'package:paperless_mobile/features/logging/utils/redaction_utils.dart';
import 'package:paperless_mobile/core/model/info_message_exception.dart';
@@ -83,7 +85,7 @@ class AuthenticationCubit extends Cubit<AuthenticationState> {
AuthenticatingStage.persistingLocalUserData));
},
);
} catch (e) {
} on PaperlessApiException catch (exception, stackTrace) {
emit(
AuthenticationErrorState(
serverUrl: serverUrl,
@@ -207,8 +209,8 @@ class AuthenticationCubit extends Cubit<AuthenticationState> {
methodName: 'switchAccount',
);
final sessionManager = SessionManager([
LanguageHeaderInterceptor(locale),
final SessionManager sessionManager = SessionManagerImpl([
LanguageHeaderInterceptor(() => locale),
]);
await _addUser(
localUserId,
@@ -462,14 +464,12 @@ class AuthenticationCubit extends Cubit<AuthenticationState> {
final authApi = _apiFactory.createAuthenticationApi(sessionManager.client);
await onPerformLogin?.call();
logger.fd(
"Fetching bearer token from the server...",
className: runtimeType.toString(),
methodName: '_addUser',
);
await onPerformLogin?.call();
final token = await authApi.login(
username: credentials.username!,
password: credentials.password!,
@@ -486,7 +486,6 @@ class AuthenticationCubit extends Cubit<AuthenticationState> {
clientCertificate: clientCert,
authToken: token,
);
final userAccountBox =
Hive.box<LocalUserAccount>(HiveBoxes.localUserAccount);
final userStateBox =
@@ -586,12 +585,14 @@ class AuthenticationCubit extends Cubit<AuthenticationState> {
clientCertificate: clientCert,
),
);
logger.fd(
"User credentials successfully saved.",
className: runtimeType.toString(),
methodName: '_addUser',
);
});
final hostsBox = Hive.box<String>(HiveBoxes.hosts);
if (!hostsBox.values.contains(serverUrl)) {
await hostsBox.add(serverUrl);