Skip to content

Commit 5f2993c

Browse files
antonkomarevcmgmyr
authored andcommitted
Fix exception when get creator of thread without messages
1 parent 0d4d1b1 commit 5f2993c

File tree

7 files changed

+28
-8
lines changed

7 files changed

+28
-8
lines changed

src/Cmgmyr/Messenger/Models/Thread.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ public function users()
9595
*/
9696
public function creator()
9797
{
98-
return $this->messages()->withTrashed()->oldest()->first()->user;
98+
$firstMessage = $this->messages()->withTrashed()->oldest()->first();
99+
100+
return $firstMessage ? $firstMessage->user : null;
99101
}
100102

101103
/**

tests/CustomModelsTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
use Cmgmyr\Messenger\Models\Models;
77
use Cmgmyr\Messenger\Models\Participant;
88
use Cmgmyr\Messenger\Models\Thread;
9-
use Cmgmyr\Messenger\Test\Models\CustomMessage;
10-
use Cmgmyr\Messenger\Test\Models\CustomParticipant;
11-
use Cmgmyr\Messenger\Test\Models\CustomThread;
9+
use Cmgmyr\Messenger\Test\Stubs\Models\CustomMessage;
10+
use Cmgmyr\Messenger\Test\Stubs\Models\CustomParticipant;
11+
use Cmgmyr\Messenger\Test\Stubs\Models\CustomThread;
1212

1313
class CustomModelsTest extends TestCase
1414
{

tests/EloquentThreadTest.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,4 +495,22 @@ public function it_should_get_the_creator_of_a_thread()
495495

496496
$this->assertEquals('Chris Gmyr', $thread->creator()->name);
497497
}
498+
499+
/**
500+
* @test
501+
*
502+
* TODO: Need to get real creator of the thread without messages in future versions.
503+
*/
504+
public function it_should_get_the_null_creator_of_a_thread_without_messages()
505+
{
506+
$thread = $this->faktory->create('thread');
507+
508+
$user_1 = $this->faktory->build('participant');
509+
$user_2 = $this->faktory->build('participant', ['user_id' => 2]);
510+
$user_3 = $this->faktory->build('participant', ['user_id' => 3]);
511+
512+
$thread->participants()->saveMany([$user_1, $user_2, $user_3]);
513+
514+
$this->assertNull($thread->creator());
515+
}
498516
}

tests/Models/CustomMessage.php renamed to tests/Stubs/Models/CustomMessage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Cmgmyr\Messenger\Test\Models;
3+
namespace Cmgmyr\Messenger\Test\Stubs\Models;
44

55
use Cmgmyr\Messenger\Models\Message;
66

tests/Models/CustomParticipant.php renamed to tests/Stubs/Models/CustomParticipant.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Cmgmyr\Messenger\Test\Models;
3+
namespace Cmgmyr\Messenger\Test\Stubs\Models;
44

55
use Cmgmyr\Messenger\Models\Message;
66

tests/Models/CustomThread.php renamed to tests/Stubs/Models/CustomThread.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Cmgmyr\Messenger\Test\Models;
3+
namespace Cmgmyr\Messenger\Test\Stubs\Models;
44

55
use Cmgmyr\Messenger\Models\Message;
66

tests/Models/User.php renamed to tests/Stubs/Models/User.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Cmgmyr\Messenger\Test\Models;
3+
namespace Cmgmyr\Messenger\Test\Stubs\Models;
44

55
use Illuminate\Database\Eloquent\Model;
66

0 commit comments

Comments
 (0)