Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Tdd Authentication

Como eu posso usar authentication tdd ? eu testei só que ele para no meio do caminho, tipo eu quero mostrar quem está logado em outro form usei esse exemplo da documentação e não tive exito https://laravel.com/docs/5.6/http-tests

4 respostas

Olá Elyton,

deixa eu ver se eu entendi, você quer fazer testes automatizados de autenticação com o phpUnit, certo?

Os asserts de autenticação são esses mesmo que você indicou na documentação: https://laravel.com/docs/5.6/http-tests#authentication-assertions Você pode descrever com mais detalhes o que aconteceu. O que você quis dizer com "ele para no meio do caminho"?

Abraços!

Tipo pegar o nome do usuário logado

Na function do arquivo tddTest eu passo o login e logo em seguida eu passo o campo cadastro, e gostaria de saber como eu pego o nome do usuário...

Eu estou fazendo dessa maneira não sei se é o correto

$response = $this->post('api/login',$dados);
    $response->assertOk();

  $response = $this->post('api/empresa',$dados);
    $response->assertOk();

Oi Elyton, tudo bom?

O usuario logado não é rertonado no response? Você poderia resgatar a instancia do response e verificar o nome. Já tentou essa abordagem?

Como está o método post dentro do teste? Compartilha mais do seu código aqui com a gente. Assim fica mais facil dar um direcionamento =)

Abraço

solução!

Consegui resolver tiver que pegar o usuário logado, buscar id da pessoa logada e no tdd jogava o dados do login

Controller

//busca usuario
    $usuario = $request->user(); //usuario logado
    $idPessoafisica = $usuario->pessoafisica->id; //id pessoafisica


TDD

public function testCriarEmpresaGerador() { // $this->assertTrue(true);

    $dadosUsuario = [
        'email' => 'ana@mail.com',
        'password' => '123456'
    ];
    $response = $this->post('/api/login', $dadosUsuario);

    $response->assertOk();

    $dados = 
    [
        'nomeEmpresa' => 'Centro de tecnologia da informação',
        'nomeFantasia'=> 'CCTI',
        'cnpj'=> '85701757000165',
        'telefone'=> '9536268087',

        //Endereco

        'logradouro' => 'Av Brasil,
        'numero' => '1820',
        'cep' => '69318900',

    ];

    $response = $this->post('/api/empresa/criar', $dados);

    //echo $response->content();

    $response->assertSuccessful();
}