Skip to content

Macros de Teste HTTP do Laravel

O pacote themattosdev/leakless-dev injeta automaticamente macros de asserção no Illuminate\Testing\TestResponse do Laravel.


Macros Disponíveis

1. assertNoDanglingTransactions()

Valida que a requisição HTTP não deixou nenhuma transação aberta ou não commitada em nenhuma conexão ativa de banco de dados:

php
test('checkout de pedidos não deixa transações de banco abertas', function () {
    $response = $this->postJson('/api/orders', [
        'product_id' => 42,
        'quantity' => 1,
    ]);

    $response->assertCreated()
        ->assertNoDanglingTransactions();
});

2. assertNoMemoryDrift(?float $maxAllowedMb = 5.0)

Valida que a variação de memória RAM física do kernel Linux durante a requisição permaneceu dentro do limite aceitável em megabytes:

php
test('exportação de relatórios não provoca vazamento excessivo de memória', function () {
    $response = $this->get('/reports/export-csv');

    $response->assertOk()
        ->assertNoMemoryDrift(maxAllowedMb: 10.0);
});

3. assertCleanWorkerState()

Combina as validações: assegura que não houve transações órfãs de banco nem poluição de estado no worker:

php
test('endpoint de processamento mantém o worker em estado 100% limpo', function () {
    $response = $this->postJson('/api/process-batch');

    $response->assertOk()
        ->assertCleanWorkerState();
});

Released under the MIT License.