assertFileDownloaded
Метод assertFileDownloaded класса Testable
предназначен для проверки факта скачивания файла
в тестах Livewire. Он вызывается на экземпляре
тестируемого компонента и принимает ожидаемое имя
скачиваемого файла в качестве аргумента.
Синтаксис
<?php
Livewire::test(Component::class)
->call('methodName')
->assertFileDownloaded('filename.ext');
?>
Пример
Давайте создадим компонент с методом, который инициирует скачивание текстового файла:
<?php
namespace AppLivewire;
use LivewireComponent;
use SymfonyComponentHttpFoundationStreamedResponse;
class FileDownloader extends Component
{
public function download()
{
return response()->streamDownload(function () {
echo 'Hello, World!';
}, 'example.txt');
}
public function render()
{
return view('livewire.file-downloader');
}
}
?>
<div>
<button wire:click="download">
Download
</button>
</div>
Теперь в тесте проверим, что при нажатии на кнопку скачивается файл с правильным именем:
<?php
namespace TestsFeatureLivewire;
use AppLivewireFileDownloader;
use LivewireLivewire;
use TestsTestCase;
class FileDownloaderTest extends TestCase
{
public function test_file_download()
{
$res = Livewire::test(FileDownloader::class)
->call('download')
->assertFileDownloaded('example.txt');
}
}
?>
Результат выполнения теста:
"Test passed"
Пример
Проверим, что скачивается файл с другим именем. Тест провалится:
<?php
namespace TestsFeatureLivewire;
use AppLivewireFileDownloader;
use LivewireLivewire;
use TestsTestCase;
class FileDownloaderTest extends TestCase
{
public function test_file_download_fail()
{
$res = Livewire::test(FileDownloader::class)
->call('download')
->assertFileDownloaded('wrong-name.txt');
}
}
?>
Результат выполнения кода:
"Failed asserting that a file was downloaded with name 'wrong-name.txt'"
Смотрите также
-
метод
assertOk,
который проверяет статус-код ответа -
метод
assertStatus,
который проверяет конкретный HTTP-статус -
метод
assertRedirect,
который проверяет редирект после действия -
метод
call,
который вызывает метод компонента из теста