PASS Tests\Feature\Api\AuthTest тЬУ Send OTP Code тЖТ it sends OTP code to valid phone number 3.35s тЬУ Send OTP Code тЖТ it rejects invalid phone number 0.18s тЬУ Send OTP Code тЖТ it enforces rate limit on OTP requests 0.19s тЬУ Verify OTP Code тЖТ it verifies correct OTP and creates new user 0.22s тЬУ Verify OTP Code тЖТ it verifies correct OTP for existing approved user 0.19s тЬУ Verify OTP Code тЖТ it rejects incorrect OTP code 0.20s тЬУ Verify OTP Code тЖТ it rejects expired OTP code 0.19s тЬУ Verify OTP Code тЖТ it rejects blocked user 0.19s тЬУ Authenticated Routes тЖТ it can get current user 0.17s тЬУ Authenticated Routes тЖТ it can refresh JWT token 0.17s тЬУ Authenticated Routes тЖТ it can logout 0.20s тЬУ Authenticated Routes тЖТ it rejects unauthenticated requests 0.18s PASS Tests\Feature\Api\ChatTest тЬУ List Chats тЖТ it lists user chats 0.24s тЬУ List Chats тЖТ it requires authentication 0.20s тЬУ Show Chat тЖТ it shows chat details for participant 0.19s тЬУ Show Chat тЖТ it denies access to non-participants 0.18s тЬУ List Messages тЖТ it lists chat messages for participant 0.20s тЬУ List Messages тЖТ it denies access to non-participants 0.18s тЬУ List Messages тЖТ it paginates messages 0.23s тЬУ Send Message тЖТ it can send text message to chat 0.19s тЬУ Send Message тЖТ it validates message content 0.20s тЬУ Send Message тЖТ it denies non-participants from sending messages 0.22s тЬУ Mark Chat as Read тЖТ it can mark chat as read 0.20s тЬУ Mark Chat as Read тЖТ it denies non-participants 0.20s тЬУ Unread Messages Count тЖТ it calculates unread messages correctly 0.09s PASS Tests\Feature\Api\EventTest тЬУ List Events тЖТ it lists published events for approved users 0.21s тЬУ List Events тЖТ it lists only my events when status=my 0.20s тЬУ List Events тЖТ it requires approved user status 0.21s тЬУ Show Event тЖТ it shows published event details 0.21s тЬУ Show Event тЖТ it hides draft events 0.19s тЬУ Join Event тЖТ it can join published event 0.19s тЬУ Join Event тЖТ it cannot join draft event 0.20s тЬУ Join Event тЖТ it cannot join full event 0.21s тЬУ Join Event тЖТ it cannot join twice 0.19s тЬУ Leave Event тЖТ it can leave event 0.20s тЬУ Leave Event тЖТ it cannot leave if not participating 0.18s PASS Tests\Feature\Api\FaqAndFeedbackTest тЬУ FAQ API тЖТ it lists active FAQs 0.21s тЬУ FAQ API тЖТ it returns translated FAQs based on locale 0.19s тЬУ FAQ API тЖТ it requires approved user 0.17s тЬУ Feedback API тЖТ it can submit feedback 0.19s тЬУ Feedback API тЖТ it validates feedback data 0.18s тЬУ Feedback API тЖТ it requires approved user 0.19s PASS Tests\Feature\Api\NotificationTest тЬУ List Notifications тЖТ it lists user notifications 0.19s тЬУ List Notifications тЖТ it filters by notification type 0.21s тЬУ List Notifications тЖТ it only shows own notifications 0.20s тЬУ Unread Count тЖТ it counts unread notifications 0.19s тЬУ Mark as Read тЖТ it can mark notification as read 0.19s тЬУ Mark as Read тЖТ it cannot mark others notification as read 0.18s тЬУ Mark All as Read тЖТ it marks all notifications as read 0.20s тЬУ Delete Notification тЖТ it can delete notification 0.20s тЬУ Delete Notification тЖТ it cannot delete others notification 0.19s PASS Tests\Feature\Api\ProfileTest тЬУ Get Profile тЖТ it can get user profile 0.20s тЬУ Get Profile тЖТ it requires authentication 0.21s тЬУ Update Profile тЖТ it submits profile changes for approval 0.17s тЬУ Update Profile тЖТ it validates profile data 0.18s тЬУ Upload Avatar тЖТ it can upload avatar image 0.27s тЬУ Upload Avatar тЖТ it rejects invalid file types 0.48s тЬУ Upload Avatar тЖТ it rejects files larger than 2MB 0.39s тЬУ Update Locale тЖТ it can change locale to Ukrainian 0.18s тЬУ Update Locale тЖТ it can change locale to English 0.19s тЬУ Update Locale тЖТ it rejects invalid locale 0.18s тЬУ Update FCM Token тЖТ it can update FCM token 0.19s тЬУ Toggle Notifications тЖТ it can enable notifications 0.21s тЬУ Toggle Notifications тЖТ it can disable notifications 0.21s тЬУ Delete Account тЖТ it can delete account 0.18s FAIL Tests\Feature\CreateEventChatsCommandTest тип creates chat for event starting within 24 hours with approved participants 0.11s тип does not create chat for event starting in more than 24 hours 0.07s тип does not create chat for event without approved participants 0.09s тип does not create chat for event that already has one 0.08s тип does not create chat for ended event 0.07s тип creates chat with multiple approved participants 0.09s PASS Tests\Feature\EventParticipantObserverTest тЬУ adds participant to chat when approved during creation 0.09s тЬУ adds participant to chat when status changed to approved 0.08s тЬУ does not add participant to chat if event has no chat 0.07s тЬУ does not add participant to chat if status is not approved 0.09s тЬУ removes participant from chat when status changed from approved 0.09s тЬУ removes participant from chat when participant is deleted 0.11s тЬУ does not add duplicate participant to chat 0.09s тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФА FAILED Tests\Feature\CreateEventChatsCommandTest > creates chat for event starting within 24 hours with approved participants AssertionFailedError Output "Chat created for event: 29 - Ipsa modi delectus dolor." was not printed. at tests\Feature\CreateEventChatsCommandTest.php:31 27тЦХ 28тЦХ artisan('events:create-chats') 29тЦХ ->expectsOutput('Chat created for event: '.$event->id.' - '.$event->getTranslation('title', 'uk')) 30тЦХ ->expectsOutput('Total chats created: 1') тЮЬ 31тЦХ ->assertSuccessful(); 32тЦХ 33тЦХ $event->refresh(); 34тЦХ expect($event->chat_id)->not->toBeNull(); 35тЦХ тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФА FAILED Tests\Feature\CreateEventChatsCommandTest > does not create chat for event starting in more than 24 hours AssertionFailedError Output "Total chats created: 0" was not printed. at tests\Feature\CreateEventChatsCommandTest.php:60 56тЦХ ]); 57тЦХ 58тЦХ artisan('events:create-chats') 59тЦХ ->expectsOutput('Total chats created: 0') тЮЬ 60тЦХ ->assertSuccessful(); 61тЦХ 62тЦХ $event->refresh(); 63тЦХ expect($event->chat_id)->toBeNull(); 64тЦХ }); тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФА FAILED Tests\Feature\CreateEventChatsCommandTest > does not create chat for event without approved participants AssertionFailedError Output "Total chats created: 0" was not printed. at tests\Feature\CreateEventChatsCommandTest.php:84 80тЦХ ]); 81тЦХ 82тЦХ artisan('events:create-chats') 83тЦХ ->expectsOutput('Total chats created: 0') тЮЬ 84тЦХ ->assertSuccessful(); 85тЦХ 86тЦХ $event->refresh(); 87тЦХ expect($event->chat_id)->toBeNull(); 88тЦХ }); тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФА FAILED Tests\Feature\CreateEventChatsCommandTest > does not create chat for event that already has one AssertionFailedError Output "Total chats created: 0" was not printed. at tests\Feature\CreateEventChatsCommandTest.php:114 110тЦХ ]); 111тЦХ 112тЦХ artisan('events:create-chats') 113тЦХ ->expectsOutput('Total chats created: 0') тЮЬ 114тЦХ ->assertSuccessful(); 115тЦХ }); 116тЦХ 117тЦХ test('does not create chat for ended event', function () { 118тЦХ $curator = AdminUser::factory()->create(); тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФА FAILED Tests\Feature\CreateEventChatsCommandTest > does not create chat for ended event AssertionFailedError Output "Total chats created: 0" was not printed. at tests\Feature\CreateEventChatsCommandTest.php:135 131тЦХ ]); 132тЦХ 133тЦХ artisan('events:create-chats') 134тЦХ ->expectsOutput('Total chats created: 0') тЮЬ 135тЦХ ->assertSuccessful(); 136тЦХ 137тЦХ $event->refresh(); 138тЦХ expect($event->chat_id)->toBeNull(); 139тЦХ }); тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФА FAILED Tests\Feature\CreateEventChatsCommandTest > creates chat with multiple approved participants AssertionFailedError Output "Chat created for event: 34 - Modi deserunt aut." was not printed. at tests\Feature\CreateEventChatsCommandTest.php:162 158тЦХ 159тЦХ artisan('events:create-chats') 160тЦХ ->expectsOutput('Chat created for event: '.$event->id.' - '.$event->getTranslation('title', 'uk')) 161тЦХ ->expectsOutput('Total chats created: 1') тЮЬ 162тЦХ ->assertSuccessful(); 163тЦХ 164тЦХ $event->refresh(); 165тЦХ expect($event->chat_id)->not->toBeNull(); 166тЦХ Tests: 6 failed, 72 passed (221 assertions) Duration: 17.68s