added tests for send email
This commit is contained in:
		@@ -5,6 +5,7 @@ namespace Tests\Feature\Sales;
 | 
			
		||||
use App\Exports\Sales\Invoices as Export;
 | 
			
		||||
use App\Jobs\Document\CreateDocument;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
use App\Notifications\Sale\Invoice as Notification;
 | 
			
		||||
use Illuminate\Http\UploadedFile;
 | 
			
		||||
use Illuminate\Support\Carbon;
 | 
			
		||||
use Illuminate\Support\Facades\File;
 | 
			
		||||
@@ -127,6 +128,37 @@ class InvoicesTest extends FeatureTestCase
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testItShouldSendInvoiceEmail()
 | 
			
		||||
    {
 | 
			
		||||
        config(['mail.default' => 'array']);
 | 
			
		||||
 | 
			
		||||
        $invoice = $this->dispatch(new CreateDocument($this->getRequest()));
 | 
			
		||||
 | 
			
		||||
        $this->loginAs()
 | 
			
		||||
            ->post(route('modals.invoices.emails.store', $invoice->id), $this->getEmailRequest($invoice))
 | 
			
		||||
            ->assertStatus(200);
 | 
			
		||||
 | 
			
		||||
        $this->assertFlashLevel('success');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testItShouldHitRateLimitForSendInvoiceEmail()
 | 
			
		||||
    {
 | 
			
		||||
        config(['mail.default' => 'array']);
 | 
			
		||||
 | 
			
		||||
        $invoice = $this->dispatch(new CreateDocument($this->getRequest()));
 | 
			
		||||
 | 
			
		||||
        for ($i = 0; $i < config('app.throttles.email.minute'); $i++) {
 | 
			
		||||
            $this->loginAs()
 | 
			
		||||
                ->post(route('modals.invoices.emails.store', $invoice->id), $this->getEmailRequest($invoice));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->loginAs()
 | 
			
		||||
            ->post(route('modals.invoices.emails.store', $invoice->id), $this->getEmailRequest($invoice))
 | 
			
		||||
            ->assertJson([
 | 
			
		||||
                'success' => false,
 | 
			
		||||
            ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testItShouldSeeInvoiceUpdatePage()
 | 
			
		||||
    {
 | 
			
		||||
        $request = $this->getRequest();
 | 
			
		||||
@@ -254,4 +286,16 @@ class InvoicesTest extends FeatureTestCase
 | 
			
		||||
 | 
			
		||||
        return $factory->raw();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getEmailRequest($invoice)
 | 
			
		||||
    {
 | 
			
		||||
        $notification = new Notification($invoice, 'invoice_new_customer', true);
 | 
			
		||||
 | 
			
		||||
        return [
 | 
			
		||||
            'document_id'   => $invoice->id,
 | 
			
		||||
            'to'            => $invoice->contact->email,
 | 
			
		||||
            'subject'       => $notification->getSubject(),
 | 
			
		||||
            'body'          => $notification->getBody(),
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user