mirror of
https://github.com/nothingworksinc/ticketbeast.git
synced 2026-02-25 04:57:09 +00:00
(add authorization and validation tests)
This commit is contained in:
@@ -19,6 +19,11 @@ class ConcertMessagesController extends Controller
|
|||||||
{
|
{
|
||||||
$concert = Auth::user()->concerts()->findOrFail($id);
|
$concert = Auth::user()->concerts()->findOrFail($id);
|
||||||
|
|
||||||
|
$this->validate(request(), [
|
||||||
|
'subject' => ['required'],
|
||||||
|
'message' => ['required'],
|
||||||
|
]);
|
||||||
|
|
||||||
$message = $concert->attendeeMessages()->create(request(['subject', 'message']));
|
$message = $concert->attendeeMessages()->create(request(['subject', 'message']));
|
||||||
|
|
||||||
return redirect()->route('backstage.concert-messages.new', $concert)
|
return redirect()->route('backstage.concert-messages.new', $concert)
|
||||||
|
|||||||
@@ -75,4 +75,78 @@ class MessageAttendeesTest extends TestCase
|
|||||||
$this->assertEquals('My subject', $message->subject);
|
$this->assertEquals('My subject', $message->subject);
|
||||||
$this->assertEquals('My message', $message->message);
|
$this->assertEquals('My message', $message->message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
function a_promoter_cannot_send_a_new_message_for_other_concerts()
|
||||||
|
{
|
||||||
|
$user = factory(User::class)->create();
|
||||||
|
$otherUser = factory(User::class)->create();
|
||||||
|
$concert = ConcertFactory::createPublished([
|
||||||
|
'user_id' => $otherUser->id,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = $this->actingAs($user)->post("/backstage/concerts/{$concert->id}/messages", [
|
||||||
|
'subject' => 'My subject',
|
||||||
|
'message' => 'My message',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertStatus(404);
|
||||||
|
$this->assertEquals(0, AttendeeMessage::count());
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
function a_guest_cannot_send_a_new_message_for_any_concerts()
|
||||||
|
{
|
||||||
|
$concert = ConcertFactory::createPublished();
|
||||||
|
|
||||||
|
$response = $this->post("/backstage/concerts/{$concert->id}/messages", [
|
||||||
|
'subject' => 'My subject',
|
||||||
|
'message' => 'My message',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertRedirect('/login');
|
||||||
|
$this->assertEquals(0, AttendeeMessage::count());
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
function subject_is_required()
|
||||||
|
{
|
||||||
|
$user = factory(User::class)->create();
|
||||||
|
$concert = ConcertFactory::createPublished([
|
||||||
|
'user_id' => $user->id,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = $this->from("/backstage/concerts/{$concert->id}/messages/new")
|
||||||
|
->actingAs($user)
|
||||||
|
->post("/backstage/concerts/{$concert->id}/messages", [
|
||||||
|
'subject' => '',
|
||||||
|
'message' => 'My message',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertRedirect("/backstage/concerts/{$concert->id}/messages/new");
|
||||||
|
|
||||||
|
$response->assertSessionHasErrors('subject');
|
||||||
|
$this->assertEquals(0, AttendeeMessage::count());
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
function message_is_required()
|
||||||
|
{
|
||||||
|
$user = factory(User::class)->create();
|
||||||
|
$concert = ConcertFactory::createPublished([
|
||||||
|
'user_id' => $user->id,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = $this->from("/backstage/concerts/{$concert->id}/messages/new")
|
||||||
|
->actingAs($user)
|
||||||
|
->post("/backstage/concerts/{$concert->id}/messages", [
|
||||||
|
'subject' => 'My subject',
|
||||||
|
'message' => '',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertRedirect("/backstage/concerts/{$concert->id}/messages/new");
|
||||||
|
|
||||||
|
$response->assertSessionHasErrors('message');
|
||||||
|
$this->assertEquals(0, AttendeeMessage::count());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user