Skip to content

Commit

Permalink
Resolução de problema no teste
Browse files Browse the repository at this point in the history
  • Loading branch information
Max-Rohrer20 committed Aug 20, 2024
1 parent ba79e78 commit 5a0bdb7
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 19 deletions.
28 changes: 25 additions & 3 deletions lgbtq_connect/includes/admin/formulario-admin-page.php
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,30 @@ function rejeitar_formulario($id) {
<h3 style="color: #dc3545;">Formulário Rejeitado</h3>
<p>Olá,</p>
<p>Infelizmente, seu formulário para o cadastro de <strong>' . esc_html($formulario->nome) . '</strong> foi rejeitado.</p>
<p>Se você acredita que houve um engano na decisão sobre <strong>' . esc_html($formulario->nome) . '</strong> , entre em contato conosco.</p>
<p>Se você acreditamax@max-Latitude-3420:~/Área de Trabalho/T2G8-Plugin-Wordpress$ phpunit tests/php/*
PHP Warning: Undefined array key "REQUEST_METHOD" in /home/max/Área de Trabalho/T2G8-Plugin-Wordpress/lgbtq_connect/includes/admin/formulario-admin-page.php on line 30
PHPUnit 9.5.10 by Sebastian Bergmann and contributors.
Atualizando formulário ID: 1 com dados: Nome=Teste Nome, [email protected], Serviço=Teste Serviço
.<div class="updated"><p>Formulário atualizado com sucesso!</p></div><script>window.location.href = window.location.href;</script>EParâmetros inválidos em alteraStatus
.Parâmetros inválidos em alteraStatus
.Parâmetros inválidos em alteraStatus
.Resultado da query de atualização de status: Falha
.Resultado da query de atualização de status: Sucesso
. 7 / 7 (100%)
Time: 00:00.014, Memory: 6.00 MB
There was 1 error:
1) AlteraStatusTest::test_atualizar_formulario_missing_data
Undefined variable $wpdb
/home/max/Área de Trabalho/T2G8-Plugin-Wordpress/tests/php/AlteraStatusTest.php:102
ERRORS!
Tests: 7, Assertions: 8, Errors: 1.
m que houve um engano na decisão sobre <strong>' . esc_html($formulario->nome) . '</strong> , entre em contato conosco.</p>
<hr>
</div>
</body>
Expand Down Expand Up @@ -216,10 +239,9 @@ function excluir_formulario($id) {
}

function atualizar_formulario($wpdb, $funcao_localizacao) {
// Verificação dos dados obrigatórios no POST
if (!isset($_POST['id'], $_POST['nome'], $_POST['email'], $_POST['servico'], $_POST['descricao'], $_POST['latitude'], $_POST['longitude'])) {
error_log("Dados insuficientes no POST para atualizar o formulário.");
return;
wp_die('Dados insuficientes no POST para atualizar o formulário.', 'Erro', array('response' => 400));
}

// Sanitização dos dados recebidos
Expand Down
44 changes: 28 additions & 16 deletions tests/php/AlteraStatusTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,19 +52,27 @@ protected function setUp(): void {
->getMock();
}

protected function tearDown(): void {
unset($_SERVER['REQUEST_METHOD']);
$_POST = [];
parent::tearDown();
}

// Testes para a função atualizar_formulario
public function test_atualizar_formulario_success() {
// Simula um ambiente HTTP com método POST
$_SERVER['REQUEST_METHOD'] = 'POST';

// Mock de $_POST
$_POST['id'] = 1;
$_POST['nome'] = 'Teste Nome';
$_POST['email'] = '[email protected]';
$_POST['servico'] = 'Teste Serviço';
$_POST['descricao'] = 'Teste Descrição';
$_POST['latitude'] = '12.345678';
$_POST['longitude'] = '98.7654321';
$_POST = [
'id' => 1,
'nome' => 'Teste Nome',
'email' => '[email protected]',
'servico' => 'Teste Serviço',
'descricao' => 'Teste Descrição',
'latitude' => '12.345678',
'longitude' => '98.7654321'
];

// Mock da função conseguir_rua_e_cidade
$mock_conseguir_rua_e_cidade = function($latitude, $longitude) {
Expand All @@ -90,28 +98,32 @@ public function test_atualizar_formulario_success() {
)
->willReturn(1);

// Defina global $wpdb
global $wpdb;
$wpdb = $this->wpdb;

// Chame a função atualizar_formulario
atualizar_formulario($this->wpdb, $mock_conseguir_rua_e_cidade);
}

public function test_atualizar_formulario_missing_data() {
// Simula um ambiente HTTP com método POST
$_SERVER['REQUEST_METHOD'] = 'POST';

// Limpe o $_POST para garantir que está vazio
$_POST = [];

// Capture a saída para verificar se wp_die foi chamado
$this->expectException(WPDieException::class);
$this->expectExceptionMessage('Dados insuficientes no POST para atualizar o formulário.');

// Simule a chamada para `atualizar_formulario` sem passar os dados obrigatórios
$_POST = array(); // Dados insuficientes no POST

// Defina global $wpdb
global $wpdb;
$wpdb = $this->wpdb;

// Defina a função conseguir_rua_e_cidade como uma função fictícia
$mock_conseguir_rua_e_cidade = function($latitude, $longitude) {
return ['Mock Rua', 'Mock Cidade'];
};

// Chame a função atualizar_formulario e verifique se wp_die é chamado
atualizar_formulario($this->wpdb, $mock_conseguir_rua_e_cidade);
}


// Testes para a função alteraStatus
public function testAlteraStatusReturnsFalseWhenWpdbNotSet() {
Expand Down

0 comments on commit 5a0bdb7

Please sign in to comment.