Comments from event hosts are excluded
This commit is contained in:
parent
db30fd7044
commit
034e896a4c
|
@ -72,6 +72,26 @@ class Picker
|
|||
*/
|
||||
public function setComments(Collection $comments)
|
||||
{
|
||||
$this->comments = $comments->flatten(1)->values();
|
||||
$this->comments = $comments
|
||||
->flatten(1)
|
||||
->filter(function (array $comment) {
|
||||
return !$this->isUserAnEventHost($comment['user_display_name']);
|
||||
})
|
||||
->values();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether a commenter is an event host.
|
||||
*
|
||||
* @param string $user_display_name
|
||||
* The user's display name.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function isUserAnEventHost(string $user_display_name): bool
|
||||
{
|
||||
return $this->hosts->contains($user_display_name);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,11 +42,20 @@ class PickerTest extends TestCase
|
|||
{
|
||||
$comments = [
|
||||
[
|
||||
['comment' => 'Great talk!'],
|
||||
['comment' => 'Could be better.'],
|
||||
[
|
||||
'comment' => 'Great talk!',
|
||||
'user_display_name' => 'Dan Ackroyd',
|
||||
],
|
||||
[
|
||||
'comment' => 'Could be better.',
|
||||
'user_display_name' => 'Lucia Velasco',
|
||||
],
|
||||
],
|
||||
[
|
||||
['comment' => 'Needs more cat pictures.'],
|
||||
[
|
||||
'comment' => 'Needs more cat pictures.',
|
||||
'user_display_name' => 'Rupert Jabelman',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
|
@ -61,7 +70,37 @@ class PickerTest extends TestCase
|
|||
/** @test */
|
||||
public function comments_from_event_hosts_cannot_be_picked()
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
$event = [
|
||||
'hosts' => [
|
||||
['host_name' => 'Oliver Davies'],
|
||||
],
|
||||
];
|
||||
|
||||
$comments = [
|
||||
[
|
||||
[
|
||||
'comment' => 'Great talk!',
|
||||
'user_display_name' => 'Peter Fisher',
|
||||
],
|
||||
[
|
||||
'comment' => 'Text on slides could be bigger.',
|
||||
'user_display_name' => 'Oliver Davies',
|
||||
],
|
||||
[
|
||||
'comment' => 'Speak slower.',
|
||||
'user_display_name' => 'Zan Baldwin',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
$comments = (new Picker())
|
||||
->setHosts(collect([$event]))
|
||||
->setComments(collect($comments))
|
||||
->getComments();
|
||||
|
||||
$this->assertCount(2, $comments);
|
||||
$this->assertSame('Peter Fisher', $comments[0]['user_display_name']);
|
||||
$this->assertSame('Zan Baldwin', $comments[1]['user_display_name']);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
|
|
Loading…
Reference in a new issue