<?php
use App\Dominio\ObjetoValor\CNPJ;
use App\Infraestrutura\Adaptadores\HTTP\ImplementacaoCurlClienteHTTP;
use App\Infraestrutura\Adaptadores\Ambiente\ImplementacaoAmbienteArquivo;
$CNPJ = CNPJ::gerar();
global $email;
global $senha1;
global $oab;
global $jwt;
if(!is_file(__DIR__.'/../../../.env')) {
return;
}
$email = 'meus-email-'.rand(str_repeat(1, 16), str_repeat(9, 16)).'@gmail.com';
$senha1 = '0hHMaydana%';
$oab = 'RS '.rand(str_repeat(1, 3), str_repeat(9, 3));
$ambiente = new ImplementacaoAmbienteArquivo();
$desenvolvimento = $ambiente->get('TEST_INTEGRATION_RUN');
$jwt = '';
if(!$desenvolvimento){
// Não é ambiente de desenvolvimento, não permitir rodar os testes (pelo menos por enquanto.)
return;
}
beforeEach(function() {
$this->clientHTTP = new ImplementacaoCurlClienteHTTP([
'baseURL' => 'http://localhost:8052'
]);
});
test("Deverá criar uma empresa com o E-mail: $email CNPJ: $CNPJ e senha: $senha1", function() use ($CNPJ, $email, $senha1, $oab){
$resposta = $this->clientHTTP->post('/empresa', [
'nome_fantasia' => 'Empresa Teste',
'numero_documento' => $CNPJ,
'oab' => $oab,
'responsavel_nome_completo' => 'Matheus Maydana',
'responsavel_email' => $email,
'responsavel_senha' => $senha1
]);
expect($resposta->code)->toBe(201)
->and($resposta->body)->toBeArray()
->and($resposta->body['message'])->toBe('Empresa cadastrada com sucesso');
})
->group('Integracao');
test('Deverá já existir uma empresa com esse documento', function() use ($CNPJ, $email, $senha1, $oab){
$resposta = $this->clientHTTP->post('/empresa', [
'nome_fantasia' => 'Empresa Teste',
'numero_documento' => $CNPJ,
'oab' => $oab,
'responsavel_nome_completo' => 'Matheus Maydana',
'responsavel_email' => $email,
'responsavel_senha' => $senha1
]);
expect($resposta->code)->toBe(400)
->and($resposta->body)->toBeArray()
->and($resposta->body['message'])->toBe('Já existe uma empresa com número do documento informado. ('.(new CNPJ($CNPJ))->get().')');
})
->group('Integracao');
test('Deverá gerar um acess Token - Login efetuado com sucesso', function() use ($email, $senha1, &$jwt){
$resposta = $this->clientHTTP->post('/login', [
"email" => $email,
"senha" => $senha1
]);
$jwt = $resposta->body['access_token'];
expect($resposta->code)->toBe(201)
->and($resposta->body)->toBeArray()
->and($resposta->body['access_token'])->toBeString();
})
->group('Integracao', 'Processos', 'Clientes');
test('Deverá falhar o login - Login e-mail ou senha inválido', function() use ($email, $senha1){
$resposta = $this->clientHTTP->post('/login', [
"email" => $email,
"senha" => "{$senha1}42"
]);
expect($resposta->code)->toBe(401)
->and($resposta->body)->toBeArray()
->and($resposta->body['message'])->toBeString()
->and($resposta->body['message'])->toBe('E-mail ou senha inválidos.');
})
->group('Integracao');
test('Deverá recuperar a senha da conta', function() use ($email){
$resposta = $this->clientHTTP->post('/recuperar', [
"email" => $email
]);
expect($resposta->code)->toBe(201)
->and($resposta->body)->toBeArray()
->and($resposta->body['message'])->toBeString()
->and($resposta->body['message'])->toBe('Enviamos um e-mail com as instruções para recuperação de senha.');
})
->group('Integracao');
test('Deverá acusar um erro dizendo que já foi feito a solicitação de recuperação e foi enviado por e-mail', function() use ($email){
$resposta = $this->clientHTTP->post('/recuperar', [
"email" => $email
]);
expect($resposta->code)->toBe(400)
->and($resposta->body)->toBeArray()
->and($resposta->body['message'])->toBeString()
->and($resposta->body['message'])->toBe('Já enviamos para seu e-mail um token para recuperação.');
})
->group('Integracao');
|