96 - Testing Mailable Contents

This commit is contained in:
Adam Wathan
2017-04-18 14:31:08 -04:00
parent b9837f168f
commit cbbb986af7
3 changed files with 48 additions and 1 deletions

View File

@@ -0,0 +1,39 @@
<?php
use App\Order;
use App\Mail\OrderConfirmationEmail;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class OrderConfirmationEmailTest extends TestCase
{
/** @test */
function email_contains_a_link_to_the_order_confirmation_page()
{
$order = factory(Order::class)->make([
'confirmation_number' => 'ORDERCONFIRMATION1234'
]);
$email = new OrderConfirmationEmail($order);
$rendered = $this->render($email);
// In Laravel 5.5...
// $rendered = $email->render();
$this->assertContains(url('/orders/ORDERCONFIRMATION1234'), $rendered);
}
/** @test */
function email_has_a_subject()
{
$order = factory(Order::class)->make();
$email = new OrderConfirmationEmail($order);
$this->assertEquals("Your TicketBeast Order", $email->build()->subject);
}
private function render($mailable)
{
$mailable->build();
return view($mailable->view, $mailable->buildViewData())->render();
}
}