как отстаивать доступность laravel mix с помощью phpunit? - PullRequest
0 голосов
/ 21 октября 2019

Я написал тест, чтобы утверждать, что пользователи с правами администратора могут получить доступ к панели инструментов Laravel Horizon следующим образом:

public function test_admin_can_access_horizon()
{
    $admin = create(User::class);
    $response = $this->actingAs($admin)->get('horizon');
    $response->assertOk();
}

Но она не работает с ошибкой

Манифест Mix не существует.

Итак, я хотел проверить, что манифест микширования существует, прежде чем запускать этот тест с чем-то вроде этого

public function test_mix_manifest_accessible()
{
    $exists = file_exists(public_path('/mix-manifest.json'));
    $this->assertTrue($exists); // Pass

    $response = $this->getJson('/mix-manifest.json');
    $response->assertOk(); // Fail (404)

    $response = $this->get('/mix-manifest.json');
    $response->assertOk(); // Fail (404)
}

Манифест микс существует в публичном каталоге и доступен через браузер, когдаЯ нажал https://app.dev/mix-manifest.json, но PHPUnit не видит его

Я нашел этот ответ для symfony , который только говорит о невозможности сделать такую ​​вещь, но не предлагает решения или обходного пути

Я думал о своем собственном и сделал

$json = @file_get_contents(config('app.url') . '/mix-manifest.json');
$this->assertTrue($json);

Но все равно не получается

Есть идеи?

...