fix: ensure drop-offs are submitted when same as pickups
This commit is contained in:
@@ -74,7 +74,36 @@ class ParticipantDropOffFieldHandlerTest extends TestCase
|
||||
$this->assertTrue($participant->differentDropOff);
|
||||
}
|
||||
|
||||
public function testBusBusCheckboxUncheckedClearsDropOff(): void
|
||||
public function testBusBusCheckboxUncheckedAssignsMatchingDropOff(): void
|
||||
{
|
||||
$dropOff = $this->createDropOff(10, 'Berlin Hbf');
|
||||
$pickup = new Pickup();
|
||||
$pickup->id = 10;
|
||||
$pickup->city = 'Berlin Hbf';
|
||||
|
||||
$bookingDto = $this->createBookingDto(
|
||||
DirectionMapper::SUBTYPE_BUS_API,
|
||||
DirectionMapper::SUBTYPE_BUS_API,
|
||||
[$dropOff]
|
||||
);
|
||||
|
||||
$participant = $bookingDto->getParticipant(0);
|
||||
$participant->pickup = $pickup;
|
||||
$participant->differentDropOff = true;
|
||||
|
||||
$submittedData = [
|
||||
'differentDropOff' => false,
|
||||
'dropOff' => '10',
|
||||
];
|
||||
|
||||
$this->handler->processField($submittedData, $bookingDto, 0);
|
||||
|
||||
$this->assertNotNull($participant->dropOff);
|
||||
$this->assertSame(10, $participant->dropOff->id);
|
||||
$this->assertFalse($participant->differentDropOff);
|
||||
}
|
||||
|
||||
public function testBusBusCheckboxUncheckedNoPickupKeepsDropOffNull(): void
|
||||
{
|
||||
$dropOff = $this->createDropOff(10, 'Berlin Hbf');
|
||||
$bookingDto = $this->createBookingDto(
|
||||
@@ -84,12 +113,36 @@ class ParticipantDropOffFieldHandlerTest extends TestCase
|
||||
);
|
||||
|
||||
$participant = $bookingDto->getParticipant(0);
|
||||
$participant->dropOff = $dropOff;
|
||||
$participant->differentDropOff = true;
|
||||
$participant->pickup = null;
|
||||
|
||||
$submittedData = [
|
||||
'differentDropOff' => false,
|
||||
];
|
||||
|
||||
$this->handler->processField($submittedData, $bookingDto, 0);
|
||||
|
||||
$this->assertNull($participant->dropOff);
|
||||
$this->assertFalse($participant->differentDropOff);
|
||||
}
|
||||
|
||||
public function testBusBusCheckboxUncheckedPickupWithNoMatchingDropOff(): void
|
||||
{
|
||||
$dropOff = $this->createDropOff(10, 'Berlin Hbf');
|
||||
$pickup = new Pickup();
|
||||
$pickup->id = 99;
|
||||
$pickup->city = 'Unknown';
|
||||
|
||||
$bookingDto = $this->createBookingDto(
|
||||
DirectionMapper::SUBTYPE_BUS_API,
|
||||
DirectionMapper::SUBTYPE_BUS_API,
|
||||
[$dropOff]
|
||||
);
|
||||
|
||||
$participant = $bookingDto->getParticipant(0);
|
||||
$participant->pickup = $pickup;
|
||||
|
||||
$submittedData = [
|
||||
'differentDropOff' => false,
|
||||
'dropOff' => '10',
|
||||
];
|
||||
|
||||
$this->handler->processField($submittedData, $bookingDto, 0);
|
||||
|
||||
Reference in New Issue
Block a user