/** * @test */ public function canRegisterAFamilyAsGuestWithFees() { $this->simulateTransaction(); $shirtSize = 'XL'; $tournament = Tournament::firstOrFail(); $playerFirstName = 'Mark'; $firstName = 'John'; $lastName = 'Smith'; $email = 'testuser' . time() . '@example.com'; $street = '123 Test Street'; $spouseFirstName = 'apples'; $this->visit('/tournaments/' . $tournament->slug . '/registration/spectator')->type($firstName, 'first_name')->type($lastName, 'last_name')->type($email, 'email')->press('Continue')->see('The street address field is required')->see('The zip code field is required')->type($street, 'address_one')->type('12345', 'zip_code')->select($shirtSize, 'shirt_size')->type($spouseFirstName, 'spouse_first_name')->type($playerFirstName, 'minor[1][first_name]')->press('Continue')->seePageIs('/cart')->see('Family Tournament Registration')->press('Submit')->see('Your registration is complete'); $spectator = Spectator::orderBy('id', 'desc')->first(); $this->assertEquals($shirtSize, $spectator->shirt_size); // defaults to no group selected $this->assertNull($spectator->group_id); $this->assertEquals($firstName, $spectator->first_name); $this->assertEquals($lastName, $spectator->last_name); $this->assertEquals($email, $spectator->email); $this->assertEquals($spouseFirstName, $spectator->spouse_first_name); // we use the receipt_id to determine if payment has been made $this->assertGreaterThan(0, $spectator->receipt_id); // verify address is populated $this->assertEquals($street, $spectator->address->address_one); // assert minor is there $this->assertEquals($playerFirstName, $spectator->minors()->first()->name); }
/** * @return Spectator */ public function spectator() { return Spectator::where('id', $this->eventData()[0])->first(); }