'Category', 'description' => null, 'type' => 'category', 'parent_id' => null, 'position' => 1, ]); $forum = Forum::create([ 'name' => 'Forum', 'description' => null, 'type' => 'forum', 'parent_id' => $category->id, 'position' => 1, ]); $user = User::factory()->create(); $thread = Thread::create([ 'forum_id' => $forum->id, 'user_id' => $user->id, 'title' => 'Thread', 'body' => 'Body', ]); $post = Post::create([ 'thread_id' => $thread->id, 'user_id' => $user->id, 'body' => 'Post', ]); $group = AttachmentGroup::create([ 'name' => 'Docs', 'max_size_kb' => 100, 'is_active' => true, ]); $extension = AttachmentExtension::create([ 'extension' => 'pdf', 'attachment_group_id' => $group->id, 'allowed_mimes' => ['application/pdf'], ]); $attachment = Attachment::create([ 'thread_id' => $thread->id, 'post_id' => $post->id, 'attachment_extension_id' => $extension->id, 'attachment_group_id' => $group->id, 'user_id' => $user->id, 'disk' => 'local', 'path' => 'attachments/posts/'.$post->id.'/file.pdf', 'original_name' => 'file.pdf', 'extension' => 'pdf', 'mime_type' => 'application/pdf', 'size_bytes' => 10, ]); $attachment->load(['thread', 'post', 'extension', 'group', 'user']); expect($attachment->thread?->id)->toBe($thread->id); expect($attachment->post?->id)->toBe($post->id); expect($attachment->extension()->first()?->id)->toBe($extension->id); expect($attachment->group()->first()?->id)->toBe($group->id); expect($attachment->user?->id)->toBe($user->id); });