<?php
use App\Infraestrutura\Adaptadores\HTTP\ImplementacaoCurlClienteHTTP;
global $jwt;
global $email;
global $senha1;
if(!is_file(__DIR__.'/../../../.env')) {
return;
}
beforeEach(function(){
$this->clientHTTPAuth = new ImplementacaoCurlClienteHTTP([
'baseURL' => 'http://localhost:8052'
]);
$this->clientHTTPApi = new ImplementacaoCurlClienteHTTP([
'baseURL' => 'http://localhost:8053'
]);
});
describe('(Auth): login', function() use (&$jwt, &$email, &$senha1){
it("Vamos utilizar nestes testes o usuário teste automatizado. (E-mail: {$email} - Senha: {$senha1})", function() use (&$jwt){
expect(true)->toBeTrue();
})->group('Integracao', 'Empresa');
it('Vamos logar no sistema com o usuario teste automatizado para pegar o JWT.', function() use (&$jwt, &$email, &$senha1){
$resposta = $this->clientHTTPAuth->post('/login', [
"email" => $email,
"senha" => $senha1
]);
$jwt = $resposta->body['access_token'];
expect($resposta->code)->toBe(201)
->and($resposta->body)->toBeArray()
->and($jwt)->toBeString();
})->group('Integracao', 'Empresa');
it('Deverá ter criado já um JWT diferente de vazio', function() use (&$jwt){
expect($jwt)->not->toBeEmpty();
})->group('Integracao', 'Empresa');
})->group('Integracao', 'Empresa');
$empresaID = '';
describe('(Empresa): empresa', function() use (&$jwt, &$empresaID){
it('Deverá retornar os dados da empresa', function() use (&$jwt, &$empresaID){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->get('/empresa');
expect($resposta->code)->toBe(200)
->and($resposta->body)->toBeArray()
->and($resposta->body)->toHaveKey('codigo')
->and($resposta->body)->toHaveKey('apelido')
->and($resposta->body)->toHaveKey('documentoTipo')
->and($resposta->body)->toHaveKey('documentoNumero');
$empresaID = $resposta->body['codigo'];
})->group('Integracao', 'Empresa');
})->group('Integracao', 'Empresa');
describe('(Empresa): usuários', function() use (&$jwt){
it('Deverá listar pelo menos 1 usuario da empresa', function() use (&$jwt){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->get('/empresa/usuarios');
expect($resposta->code)->toBe(200)
->and($resposta->body)->toBeArray()
->and($resposta->body[0])->toHaveKey('codigo')
->and($resposta->body[0])->toHaveKey('nome')
->and($resposta->body[0])->toHaveKey('email');
})->group('Integracao', 'Empresa');
$emailCadastrar = '';
it('Deverá cadastrar um novo usuário na empresa', function() use (&$jwt, &$emailCadastrar){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$emailCadastrar = "email-aqui-".rand(111111, 999999)."@gmail.com";
$resposta = $this->clientHTTPApi->post('/empresa/usuarios', [
"nome" => "Teste Automatizado",
"email" => $emailCadastrar,
"oab" => "RS 123".rand(111,999)
]);
expect($resposta->code)->toBe(201)
->and($resposta->body)->toBeArray()
->and($resposta->body)->toHaveKey('message');
})->group('Integracao', 'Empresa');
it('Deverá retornar erro ao tentar cadastrar um novo usuário na empresa com email já existente', function() use (&$jwt, &$emailCadastrar){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->post('/empresa/usuarios', [
"nome" => "Teste Automatizado Versao",
"email" => $emailCadastrar,
"oab" => "RS 123".rand(111,999)
]);
expect($resposta->code)->toBe(400)
->and($resposta->body)->toBeArray()
->and($resposta->body)->toHaveKey('message')
->and($resposta->body['message'])->toBe('Já existe um colaborador com o e-mail informado.');
})->group('Integracao', 'Empresa');
it('Deverá retornar erro ao tentar cadastrar um novo usuário na empresa sem informar o email', function() use (&$jwt){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->post('/empresa/usuarios', [
"nome" => "Teste Automatizado Versao",
]);
expect($resposta->code)->toBe(400)
->and($resposta->body)->toBeArray()
->and($resposta->body)->toHaveKey('message')
->and($resposta->body['message'])->toBe('O e-mail precisa ser informado adequadamente.');
})->group('Integracao', 'Empresa');
it('Deverá retornar erro ao tentar cadastrar um novo usuário na empresa sem informar o nome completo', function() use (&$jwt){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->post('/empresa/usuarios', [
"email" => "email-aqui-".random_int(1, 999999)."@gmail.com",
]);
expect($resposta->code)->toBe(400)
->and($resposta->body)->toBeArray()
->and($resposta->body)->toHaveKey('message')
->and($resposta->body['message'])->toBe('O nome completo precisa ser informado adequadamente.');
})->group('Integracao', 'Empresa');
it('Deverá retornar erro ao tentar cadastrar um novo usuário na empresa sem informar o nome completo e o email', function() use (&$jwt){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->post('/empresa/usuarios', []);
expect($resposta->code)->toBe(400)
->and($resposta->body)->toBeArray()
->and($resposta->body)->toHaveKey('message')
->and($resposta->body['message'])->toBe('O nome completo precisa ser informado adequadamente.');
})->group('Integracao', 'Empresa');
it('Deverá retornar uma lista com os usuarios da empresa, no mínimo 2', function() use (&$jwt){
$this->clientHTTPApi->configurar([
'headers' => [
'Authorization: Bearer ' . $jwt
]
]);
$resposta = $this->clientHTTPApi->get('/empresa/usuarios');
expect($resposta->code)->toBe(200)
->and($resposta->body)->toBeArray()
->and(count($resposta->body))->toBeGreaterThan(1);
})->group('Integracao', 'Empresa');
})->group('Integracao', 'Empresa');
afterAll(function() use(&$empresaID) {
echo "Vamos limpar tudo da empresa com ID: $empresaID";
});
|