mirror of
https://github.com/nothingworksinc/ticketbeast.git
synced 2026-01-26 03:04:05 +00:00
134 - Confirming That a Job Was Dispatched
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
namespace App\Http\Controllers\Backstage;
|
namespace App\Http\Controllers\Backstage;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use App\Jobs\SendAttendeeMessage;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
@@ -26,6 +27,8 @@ class ConcertMessagesController extends Controller
|
|||||||
|
|
||||||
$message = $concert->attendeeMessages()->create(request(['subject', 'message']));
|
$message = $concert->attendeeMessages()->create(request(['subject', 'message']));
|
||||||
|
|
||||||
|
SendAttendeeMessage::dispatch($message);
|
||||||
|
|
||||||
return redirect()->route('backstage.concert-messages.new', $concert)
|
return redirect()->route('backstage.concert-messages.new', $concert)
|
||||||
->with('flash', "Your message has been sent.");
|
->with('flash', "Your message has been sent.");
|
||||||
}
|
}
|
||||||
|
|||||||
36
app/Jobs/SendAttendeeMessage.php
Normal file
36
app/Jobs/SendAttendeeMessage.php
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Jobs;
|
||||||
|
|
||||||
|
use Illuminate\Bus\Queueable;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
|
||||||
|
class SendAttendeeMessage implements ShouldQueue
|
||||||
|
{
|
||||||
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||||
|
|
||||||
|
public $attendeeMessage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new job instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct($attendeeMessage)
|
||||||
|
{
|
||||||
|
$this->attendeeMessage = $attendeeMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the job.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,6 +6,8 @@ use App\User;
|
|||||||
use ConcertFactory;
|
use ConcertFactory;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use App\AttendeeMessage;
|
use App\AttendeeMessage;
|
||||||
|
use App\Jobs\SendAttendeeMessage;
|
||||||
|
use Illuminate\Support\Facades\Queue;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||||
|
|
||||||
class MessageAttendeesTest extends TestCase
|
class MessageAttendeesTest extends TestCase
|
||||||
@@ -57,6 +59,7 @@ class MessageAttendeesTest extends TestCase
|
|||||||
{
|
{
|
||||||
$this->disableExceptionHandling();
|
$this->disableExceptionHandling();
|
||||||
|
|
||||||
|
Queue::fake();
|
||||||
$user = factory(User::class)->create();
|
$user = factory(User::class)->create();
|
||||||
$concert = ConcertFactory::createPublished([
|
$concert = ConcertFactory::createPublished([
|
||||||
'user_id' => $user->id,
|
'user_id' => $user->id,
|
||||||
@@ -74,11 +77,16 @@ class MessageAttendeesTest extends TestCase
|
|||||||
$this->assertEquals($concert->id, $message->concert_id);
|
$this->assertEquals($concert->id, $message->concert_id);
|
||||||
$this->assertEquals('My subject', $message->subject);
|
$this->assertEquals('My subject', $message->subject);
|
||||||
$this->assertEquals('My message', $message->message);
|
$this->assertEquals('My message', $message->message);
|
||||||
|
|
||||||
|
Queue::assertPushed(SendAttendeeMessage::class, function ($job) use ($message) {
|
||||||
|
return $job->attendeeMessage->is($message);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
function a_promoter_cannot_send_a_new_message_for_other_concerts()
|
function a_promoter_cannot_send_a_new_message_for_other_concerts()
|
||||||
{
|
{
|
||||||
|
Queue::fake();
|
||||||
$user = factory(User::class)->create();
|
$user = factory(User::class)->create();
|
||||||
$otherUser = factory(User::class)->create();
|
$otherUser = factory(User::class)->create();
|
||||||
$concert = ConcertFactory::createPublished([
|
$concert = ConcertFactory::createPublished([
|
||||||
@@ -92,11 +100,13 @@ class MessageAttendeesTest extends TestCase
|
|||||||
|
|
||||||
$response->assertStatus(404);
|
$response->assertStatus(404);
|
||||||
$this->assertEquals(0, AttendeeMessage::count());
|
$this->assertEquals(0, AttendeeMessage::count());
|
||||||
|
Queue::assertNotPushed(SendAttendeeMessage::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
function a_guest_cannot_send_a_new_message_for_any_concerts()
|
function a_guest_cannot_send_a_new_message_for_any_concerts()
|
||||||
{
|
{
|
||||||
|
Queue::fake();
|
||||||
$concert = ConcertFactory::createPublished();
|
$concert = ConcertFactory::createPublished();
|
||||||
|
|
||||||
$response = $this->post("/backstage/concerts/{$concert->id}/messages", [
|
$response = $this->post("/backstage/concerts/{$concert->id}/messages", [
|
||||||
@@ -106,11 +116,13 @@ class MessageAttendeesTest extends TestCase
|
|||||||
|
|
||||||
$response->assertRedirect('/login');
|
$response->assertRedirect('/login');
|
||||||
$this->assertEquals(0, AttendeeMessage::count());
|
$this->assertEquals(0, AttendeeMessage::count());
|
||||||
|
Queue::assertNotPushed(SendAttendeeMessage::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
function subject_is_required()
|
function subject_is_required()
|
||||||
{
|
{
|
||||||
|
Queue::fake();
|
||||||
$user = factory(User::class)->create();
|
$user = factory(User::class)->create();
|
||||||
$concert = ConcertFactory::createPublished([
|
$concert = ConcertFactory::createPublished([
|
||||||
'user_id' => $user->id,
|
'user_id' => $user->id,
|
||||||
@@ -127,11 +139,13 @@ class MessageAttendeesTest extends TestCase
|
|||||||
|
|
||||||
$response->assertSessionHasErrors('subject');
|
$response->assertSessionHasErrors('subject');
|
||||||
$this->assertEquals(0, AttendeeMessage::count());
|
$this->assertEquals(0, AttendeeMessage::count());
|
||||||
|
Queue::assertNotPushed(SendAttendeeMessage::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
function message_is_required()
|
function message_is_required()
|
||||||
{
|
{
|
||||||
|
Queue::fake();
|
||||||
$user = factory(User::class)->create();
|
$user = factory(User::class)->create();
|
||||||
$concert = ConcertFactory::createPublished([
|
$concert = ConcertFactory::createPublished([
|
||||||
'user_id' => $user->id,
|
'user_id' => $user->id,
|
||||||
@@ -148,5 +162,6 @@ class MessageAttendeesTest extends TestCase
|
|||||||
|
|
||||||
$response->assertSessionHasErrors('message');
|
$response->assertSessionHasErrors('message');
|
||||||
$this->assertEquals(0, AttendeeMessage::count());
|
$this->assertEquals(0, AttendeeMessage::count());
|
||||||
|
Queue::assertNotPushed(SendAttendeeMessage::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user