Ensure the correct event is returned
This commit is contained in:
parent
4715d02ae0
commit
08fc6c66be
3 changed files with 28 additions and 5 deletions
|
@ -17,6 +17,10 @@ readonly final class EventCollection implements \IteratorAggregate {
|
||||||
public function __construct(private array $events) {
|
public function __construct(private array $events) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function first(): ParagraphInterface {
|
||||||
|
return array_values($this->events)[0];
|
||||||
|
}
|
||||||
|
|
||||||
public function getIterator(): \Traversable {
|
public function getIterator(): \Traversable {
|
||||||
return new \ArrayIterator($this->events);
|
return new \ArrayIterator($this->events);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,15 +14,33 @@ final class PresentationTest extends ExistingSiteBase {
|
||||||
public function test_only_past_events_are_returned(): void {
|
public function test_only_past_events_are_returned(): void {
|
||||||
$presentation = $this->createPresentation(
|
$presentation = $this->createPresentation(
|
||||||
events: [
|
events: [
|
||||||
$this->createEvent(eventDate: 'now'),
|
$this->createEvent(
|
||||||
$this->createEvent(eventDate: 'yesterday'),
|
eventDate: 'now',
|
||||||
$this->createEvent(eventDate: 'tomorrow'),
|
eventName: 'now',
|
||||||
|
),
|
||||||
|
|
||||||
|
$this->createEvent(
|
||||||
|
eventDate: 'yesterday',
|
||||||
|
eventName: 'yesterday',
|
||||||
|
),
|
||||||
|
|
||||||
|
$this->createEvent(
|
||||||
|
eventDate: 'tomorrow',
|
||||||
|
eventName: 'tomorrow',
|
||||||
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$events = $presentation->getPastEvents();
|
||||||
|
|
||||||
$this->assertCount(
|
$this->assertCount(
|
||||||
expectedCount: 1,
|
expectedCount: 1,
|
||||||
haystack: $presentation->getPastEvents(),
|
haystack: $events,
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertSame(
|
||||||
|
actual: $events->first()->get('field_event_name')->value,
|
||||||
|
expected: 'yesterday',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,10 +28,11 @@ trait PresentationCreationTrait {
|
||||||
return $presentation;
|
return $presentation;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createEvent(string $eventDate): ParagraphInterface {
|
private function createEvent(string $eventName, string $eventDate): ParagraphInterface {
|
||||||
return Paragraph::create(
|
return Paragraph::create(
|
||||||
[
|
[
|
||||||
'field_date' => (new DrupalDateTime($eventDate))->getTimestamp(),
|
'field_date' => (new DrupalDateTime($eventDate))->getTimestamp(),
|
||||||
|
'field_event_name' => $eventName,
|
||||||
'type' => 'event',
|
'type' => 'event',
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue