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)
|
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 = [
|
$comments = [
|
||||||
[
|
[
|
||||||
['comment' => 'Great talk!'],
|
[
|
||||||
['comment' => 'Could be better.'],
|
'comment' => 'Great talk!',
|
||||||
|
'user_display_name' => 'Dan Ackroyd',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
['comment' => 'Needs more cat pictures.'],
|
'comment' => 'Could be better.',
|
||||||
|
'user_display_name' => 'Lucia Velasco',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
'comment' => 'Needs more cat pictures.',
|
||||||
|
'user_display_name' => 'Rupert Jabelman',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -61,7 +70,37 @@ class PickerTest extends TestCase
|
||||||
/** @test */
|
/** @test */
|
||||||
public function comments_from_event_hosts_cannot_be_picked()
|
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 */
|
/** @test */
|
||||||
|
|
Loading…
Reference in a new issue