Ошибка теста Laravel Dusk в поиске Algolia: невозможно подключиться, проверьте идентификатор приложения Algolia

В этом проекте мы используем Algolia Search, установленный через Composer. Когда я запускаю тест в сумерках в форме входа, он терпит неудачу из-за ошибки. Вход в форму сам по себе работает хорошо, кажется, когда этот тест действительно входит в систему и заканчивается на рабочем столе, здесь он терпит неудачу.

Примечание. В файле .env определены идентификаторы APP_ID и SECRET Algolia, и все работает нормально при использовании приложения.

Фактический вывод ошибки для этого теста:

1) Tests\Browser\LoginTest::testLogin
Algolia\AlgoliaSearch\Exceptions\UnreachableException: Impossible to connect, please check your Algolia Application Id.

Сумеречный тест:

public function testLogin()
    {
        $user = factory(User::class)->create([
            'email' => '[email protected]',
            'password' => '***'
        ]);

        $this->browse(function (Browser $browser) use ($user) {
            $browser->visit('/login')
                    ->type('email', '[email protected]')
                    ->type('password', '***!')
                    ->press('.button')
                    ->assertPathIs('/');
        });
    }

person Arne    schedule 28.11.2019    source источник


Ответы (1)


Решил другим способом. Наша система входа в систему немного сложнее и связывает другую таблицу в зависимости от типа пользователя, которым вы являетесь. Поскольку это не было определено в моей пользовательской фабрике в этом тесте Dusk, в нем отсутствовала важная информация об этом пользователе, что привело к ошибке поиска Algolia.

Как я это решил:

Больше не создавать пользователя в тесте Dusk и использовать одного из моих уже отобранных тестовых пользователей. Учетные данные для этого пользователя взяты из моего файла .env, чтобы обеспечить чистый/безопасный тестовый файл в сумерках, который можно загрузить в Git:

public function testLogin()
    {

        $this->browse(function (Browser $browser){
            $browser->visit('/login')
                    ->type('email', env('DUSK_USER'))
                    ->type('password', env('DUSK_PASSWORD'))
                    ->press('.button')
                    ->assertPathIs('/');
        });
    }
person Arne    schedule 28.11.2019