Тестирование данных, общих для всех представлений, чтобы убедиться, что они существуют - PullRequest
0 голосов
/ 19 февраля 2019

Я делюсь несколькими вещами со всеми представлениями в моем проекте laravel в AppServiceProvider:

public function boot()
    {

        $userLocation = geoip()->getLocation(geoip()->getClientIP());

        view()->share(['user' => \Auth::user(), 'userLocation' => $userLocation]);
    }

Но когда я проверяю это, они не отображаются:

/** @test */
public function page_has_recent_reviews()
{
    $response = $this->get(route('home'));

    $response->assertSuccessful();

    $response->assertViewHasAll(['recentReviews', 'recentPhotos']);

    $data = $response->getOriginalContent()->getData();

    print_r(array_keys($data)); exit;

}

Содержимое дампа содержит:

Array
(
    [0] => recentReviews
    [1] => recentPhotos
)

Но ни одна из данных не была передана в представление.Как это проверить?

1 Ответ

0 голосов
/ 26 февраля 2019

Итак, через некоторое время я обнаружил, что если вы поделитесь данными в обратном вызове композитора в AppServiceProvider (метод загрузки), он будет отображаться в тестах:

view()->composer('*', function($view) use ($userLocation, $ratingStars, $icons)
    {
        $view->with(['userLocation' => $userLocation, 'user' => \Auth::user());
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...