deadloop
@deadloop
Активно осваиваю PHP

Как проверить значние по условию в ответе при тестировнии api?

Я создал тест который, проверяет создана ли запись в базе. В ответ приходит ответ.

{
  "status": "OK",
  "message": "Запись с таким id обнаружена",
  "data": {
    "work": {
      "id": 14,
      "equipment_id": 64,
      "time_start": "08:00",
      "time_end": "19:59",
      "comment": "08 -> 20",
      "equipment": {
        "id": 64,
        "title": "Car1",

      }
    }
  }
}

Особенность в том, что "time_end" у меня всегда минус минута, и только 20:00 минус минута. Все остальное время всегда норм.
Как проверить это значение, что всегда приходит 19:59?

Тест
$this->json('GET', '/api/works/show/1')
            ->assertJson([
                'status' => 'OK',
            ]);
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
deadloop
@deadloop Автор вопроса
Активно осваиваю PHP
Мне всегда говрят что-бы я читал документацию, ну я и прочитал и нашел вот такой способо решения.

Но может есть другие способы, я был бы не против, спасибо.

$response = $this->get('/api/works/show/1');
        $response
            ->assertJson(fn (AssertableJson $json) =>
                $json->has('status')
                    ->has('message')
                    ->has('data.work', fn ($json) =>
                        $json->where('time_end', '19:59')
                            ->etc()
                    )
            );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы