mirror of
https://github.com/usetrmnl/byos_laravel.git
synced 2026-01-13 15:07:49 +00:00
72 lines
2.5 KiB
PHP
72 lines
2.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Support\Facades\Http;
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
test('firmware check command has correct signature', function (): void {
|
|
$command = $this->app->make(App\Console\Commands\FirmwareCheckCommand::class);
|
|
|
|
expect($command->getName())->toBe('trmnl:firmware:check');
|
|
expect($command->getDescription())->toBe('Checks for the latest firmware and downloads it if flag --download is passed.');
|
|
});
|
|
|
|
test('firmware check command runs without errors', function (): void {
|
|
// Mock the firmware API response
|
|
Http::fake([
|
|
'https://usetrmnl.com/api/firmware/latest' => Http::response([
|
|
'version' => '1.0.0',
|
|
'url' => 'https://example.com/firmware.bin',
|
|
], 200),
|
|
]);
|
|
|
|
$this->artisan('trmnl:firmware:check')
|
|
->assertExitCode(0);
|
|
|
|
// Verify that the firmware was created
|
|
expect(App\Models\Firmware::where('version_tag', '1.0.0')->exists())->toBeTrue();
|
|
});
|
|
|
|
test('firmware check command runs with download flag', function (): void {
|
|
// Mock the firmware API response
|
|
Http::fake([
|
|
'https://usetrmnl.com/api/firmware/latest' => Http::response([
|
|
'version' => '1.0.0',
|
|
'url' => 'https://example.com/firmware.bin',
|
|
], 200),
|
|
'https://example.com/firmware.bin' => Http::response('fake firmware content', 200),
|
|
]);
|
|
|
|
// Mock storage to prevent actual file operations
|
|
Storage::fake('public');
|
|
|
|
$this->artisan('trmnl:firmware:check', ['--download' => true])
|
|
->assertExitCode(0);
|
|
|
|
// Verify that the firmware was created and marked as latest
|
|
expect(App\Models\Firmware::where('version_tag', '1.0.0')->exists())->toBeTrue();
|
|
|
|
// Verify that the firmware was downloaded (storage_location should be set)
|
|
$firmware = App\Models\Firmware::where('version_tag', '1.0.0')->first();
|
|
expect($firmware->storage_location)->toBe('firmwares/FW1.0.0.bin');
|
|
});
|
|
|
|
test('firmware check command can run successfully', function (): void {
|
|
// Mock the firmware API response
|
|
Http::fake([
|
|
'https://usetrmnl.com/api/firmware/latest' => Http::response([
|
|
'version' => '1.0.0',
|
|
'url' => 'https://example.com/firmware.bin',
|
|
], 200),
|
|
]);
|
|
|
|
$this->artisan('trmnl:firmware:check')
|
|
->assertExitCode(0);
|
|
|
|
// Verify that the firmware was created
|
|
expect(App\Models\Firmware::where('version_tag', '1.0.0')->exists())->toBeTrue();
|
|
});
|