darvis/livewire-injection-stopper
The package includes a comprehensive test suite covering all functionality.
# Navigate to package directory
cd vendor/darvis/livewire-injection-stopper
# Install dev dependencies
composer install
# Using composer script
composer test
# Or directly with PHPUnit
vendor/bin/phpunit
# Middleware tests only
vendor/bin/phpunit tests/Feature/MiddlewareTest.php
# Audit command tests only
vendor/bin/phpunit tests/Feature/AuditCommandTest.php
# Config tests only
vendor/bin/phpunit tests/Unit/ConfigTest.php
# Generate HTML coverage report
composer test-coverage
# View report
open coverage/index.html
Tests for the blocking middleware:
Tests for the security audit command:
Tests for configuration handling:
<?php
namespace Darvis\LivewireInjectionStopper\Tests\Feature;
use Darvis\LivewireInjectionStopper\Tests\TestCase;
class MyTest extends TestCase
{
/** [@test](https://github.com/test) */
public function it_does_something()
{
// Arrange
$this->setupTestData();
// Act
$result = $this->performAction();
// Assert
$this->assertTrue($result);
}
}
use Darvis\LivewireInjectionStopper\Middleware\BlockInjectionAttempts;
use Illuminate\Support\Facades\Route;
protected function setUp(): void
{
parent::setUp();
Route::middleware(BlockInjectionAttempts::class)
->get('/test', fn() => response()->json(['success' => true]));
}
/** [@test](https://github.com/test) */
public function it_blocks_specific_user_agent()
{
$response = $this->get('/test', [
'User-Agent' => 'python-requests/2.28.0',
]);
$response->assertStatus(403);
}
/** [@test](https://github.com/test) */
public function it_detects_vulnerable_properties()
{
$this->createTestComponent('VulnerableComponent', <<<'PHP'
<?php
class VulnerableComponent extends Component
{
public bool $isAdmin = false;
}
PHP
);
$this->artisan('livewire-injection-stopper:audit')
->assertExitCode(1)
->expectsOutput('⚠️ Potential vulnerabilities found:');
}
name: Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
extensions: mbstring, pdo, pdo_sqlite
- name: Install Dependencies
run: composer install --prefer-dist --no-progress
- name: Run Tests
run: composer test
- name: Security Audit
run: php artisan livewire-injection-stopper:audit
Tests use an in-memory SQLite database by default. No additional setup required.
vendor/bin/phpunit --verbose
vendor/bin/phpunit --filter test_method_name
/** [@test](https://github.com/test) */
public function it_debugs_something()
{
$data = $this->getData();
dd($data); // Dumps and dies
$this->assertTrue(true);
}
it_does_something formattearDown() to clean test dataWhen contributing:
# Before submitting
composer test
How can I help you explore Laravel packages today?