added it_send_contact_form test

This commit is contained in:
Peter Papp
2021-03-12 16:45:02 +01:00
parent bb2094016b
commit 89a6c51672
5 changed files with 39 additions and 16 deletions
-1
View File
@@ -1,4 +1,3 @@
/app/Console/Commands/SetupDevEnvironment.php
/node_modules
/public/hot
/public/storage
+10 -10
View File
@@ -3,13 +3,13 @@
namespace App\Http\Controllers;
use App;
use App\Http\Mail\SendContactMessage;
use App\Models\Content;
use App\Models\File;
use App\Models\Folder;
use App\Http\Requests\PublicPages\SendMessageRequest;
use App\Http\Requests\PublicPages\SendContactMessageRequest;
use App\Http\Resources\PageResource;
use App\Http\Tools\Demo;
use App\Mail\SendSupportForm;
use App\Models\Setting;
use App\Models\Page;
use App\Models\User;
@@ -157,18 +157,18 @@ class AppFunctionsController extends Controller
/**
* Send contact message from pages
*
* @param SendMessageRequest $request
* @param SendContactMessageRequest $request
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/
public function contact_form(SendMessageRequest $request)
public function contact_form(SendContactMessageRequest $request)
{
// Get receiver email
$receiver = Setting::where('name', 'contact_email')->first();
Mail::to(
get_setting('contact_email')
)->send(
new SendContactMessage($request->all())
);
// Send message
Mail::to($receiver->value)->send(new SendSupportForm($request->all()));
return response('Done', 200);
return response('Done', 201);
}
/**
@@ -7,7 +7,7 @@ use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class SendSupportForm extends Mailable
class SendContactMessage extends Mailable
{
use Queueable, SerializesModels;
private $request;
@@ -29,9 +29,7 @@ class SendSupportForm extends Mailable
*/
public function build()
{
$from = config('mail.from')['address'];
return $this->from($from)
return $this->from(config('mail.from')['address'])
->replyTo($this->request['email'])
->subject('New Contact Message from ' . $this->request['email'])
->view('mails.contact-message')
@@ -4,7 +4,7 @@ namespace App\Http\Requests\PublicPages;
use Illuminate\Foundation\Http\FormRequest;
class SendMessageRequest extends FormRequest
class SendContactMessageRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
+26
View File
@@ -2,10 +2,15 @@
namespace Tests\Feature\App;
use App\Http\Mail\SendContactMessage;
use App\Models\Setting;
use App\Notifications\SharedSendViaEmail;
use App\Services\SetupService;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Support\Facades\Notification;
use Mail;
use Tests\TestCase;
class AppTest extends TestCase
@@ -30,4 +35,25 @@ class AppTest extends TestCase
$this->get('/')
->assertStatus(200);
}
/**
* @test
*/
public function it_send_contact_form()
{
Mail::fake();
Setting::create([
'name' => 'contact_email',
'value' => 'jane@doe.com',
]);
$this->postJson('/api/contact', [
'email' => 'john@doe.com',
'message' => 'Whaats is up!',
])
->assertStatus(201);
Mail::assertSent( SendContactMessage::class);
}
}