У меня есть куча сообщений, которые я выводю с загруженными комментариями
PostController
public function index()
{
$posts = Post::with(['comments])->paginate(2);
return PostResource::collection($posts);
}
Что я хотел бы сделать, это проверить, чтобы увидеть если каждый пост содержит комментарии content
.
Вот мой тест на данный момент:
PostFeatureTest. php
/** @test */
public function a_user_can_see_their_posts_with_comments()
{
$this->withoutExceptionHandling();
$this->actingAs($creator = factory('App\User')->create());
$posts = factory('App\Post', 10)->create(['user_id' => $creator->id]);
foreach($posts as $post){
$comment = factory('App\Comment',1)->create([
"commentable_id" => $post->id,
"commentable_type" => "App\\Post",
]);
}
$response = $this->json('GET', '/api/posts/')
->assertStatus(200);
$response->assertJsonStructure([
'data' => [
'*' => [
'title',
'comments' => [
'*' => [
'content',
'owner'
]
]
]
]
]);
foreach($posts as $post){
$response->assertJsonFragment(['title' => $post->title);
}
}
Что я надену не знаю, как это сделать, это перебрать комментарии к сообщениям, чтобы проверить, есть ли в каждом комментарии содержимое assertJsonFragment:
foreach($posts as $post){
$response->assertJsonFragment(['title' => $post->title]);
foreach($post->comments as $comment){
$response->assertJsonFragment(['content' => $comment->content]);
}
}