dmtrbskkv
@dmtrbskkv
Кодим и декодим, а иногда кино смотрим

Почему во время тестов удаляется запись из БД?

Есть вот такой тест:
public function test_isset_user_in_database()
    {
        $this->post('/api/v2/token/get', ['google_id' => $this->getGoogleID()]);
        $this->assertDatabaseHas('app_users', ['google_id' => $this->getGoogleID()]);
    }


В тесте не используется RefreshDatabase.

Метод setUp вот такой:
protected function setUp(): void
    {
        parent::setUp();

        $response = $this->post('/api/v2/token/get', ['google_id' => $this->getGoogleID()]);
        $responseJSON = $response->json();
        $this->setJWTToken($responseJSON['data']['token']);
    }


Запись создается вот так:
public function getOrCreateByGoogleID(string $googleID): ?AppUserModel
    {
        try {
            return $this->model::firstOrCreate(['google_id' => $googleID]);
        } catch (QueryException $e) {
        }

        return null;
    }


Почему созданная запись пропдает при проверке через $this->assertDatabaseHas ? Причем другие записи сохраняются
И при запросах с постмена все работает как надо

UPD: проблема наблюдается если запустить больше 1 теста, и если данный тест будет не первым
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
dmtrbskkv
@dmtrbskkv Автор вопроса
Кодим и декодим, а иногда кино смотрим
Каким-то образом все починилось

Возможно дело лимитах запросов ларавеля или в кеше. На какой-то момент указывал в конфиге тестов отдельно делать процессы php для каждого теста.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы