0
Erro:

      
Expected: Right<dynamic, ManagerEntity>:<Right(Instance of 'ManagerEntity')>
Actual: <Instance of '_FakeEither_0<Failure, ManagerEntity>'>

package:test_api                                               expect
expect
package:flutter_test/src/widget_tester.dart:460
main.<fn>
auth_repository.dart

    
`import 'package:dartz/dartz.dart';
import 'package:firebase_auth/firebase_auth.dart';

abstract class AuthRepository {
  Future<Either<Failure, ManagerEntity>> loginWithEmail(
      ManagerEntity newUserInfo);
  Future<Either<Failure, User>>? logUp(ManagerEntity userInfo);
  Future<void> LogOut({required String userId});
}`



 login_with_email.dart

    
`import 'package:barmusic_admin/core/erros/connection_error.dart';
import 'package:barmusic_admin/core/erros/error_login.dart';
import 'package:barmusic_admin/core/erros/failures.dart';
import 'package:barmusic_admin/core/services/connectivity_service.dart';
import 'package:barmusic_admin/features/domain/entities/manager_entity.dart';
import 'package:barmusic_admin/features/domain/repositories/auth_repository.dart';
// ignore: import_of_legacy_library_into_null_safe
import 'package:dartz/dartz.dart';

abstract class LoginWithEmail {
  Future<Either<Failure, ManagerEntity>> call(ManagerEntity manager);
}

class LoginWithEmailImp implements LoginWithEmail {
  final AuthRepository _repository;
  final ConnectivityService _service;

  LoginWithEmailImp(this._repository, this._service);

  @override
  Future<Either<Failure, ManagerEntity>> call(ManagerEntity manager) async {
    var result = await _service.isOnline();
    if (result.isLeft()) {
      result.map((r) => null);
      return Left(ConnectionError(
          message: 'Verifique sua conexão com a internet e tente novamente'));
    }

    if (!manager.isValidEmail) {
      return Left(ErrorLoginEmail(message: 'E-mail inválido'));
    } else if (!manager.isValidPassword) {
      return Left(ErrorLoginEmail(message: 'Senha inválida'));
    }

    return await _repository.loginWithEmail(manager);
  }
}`


     login_with_email_test.dart
   

` import 'package:barmusic_admin/core/erros/error_login.dart'; import 'package:barmusic_admin/core/services/connectivity_service.dart'; import 'package:barmusic_admin/features/domain/entities/manager_entity.dart'; import 'package:barmusic_admin/features/domain/repositories/auth_repository.dart'; import 'package:barmusic_admin/features/domain/usecases/auth/login_with_email.dart'; import 'package:dartz/dartz.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart';

import 'login_with_email_test.mocks.dart';

// @GenerateMocks([AuthRepository, ConnectivityService])
@GenerateNiceMocks(
    [MockSpec<AuthRepository>(), MockSpec<ConnectivityService>()])
void main() {
  final repository = MockAuthRepository();
  final service = MockConnectivityService();
  final usecase = LoginWithEmailImp(repository, service);

  setUpAll(() {
    when(service.isOnline()).thenAnswer((_) async => Right(unit));
  });
    
  test('should consume repository loginEmail', () async {
    var user = ManagerEntity(email: 'test@gmail.com', password: 'teste');
    when(repository.loginWithEmail(user)).thenAnswer((_) async => Right(user));
    var result = await usecase(ManagerEntity.withEmailAndPass(
        email: "test@gmail.com", password: "teste"));

    expect(result, Right(user));
  });
}`


0 Answers0