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 /node_modules
/public/hot /public/hot
/public/storage /public/storage
+10 -10
View File
@@ -3,13 +3,13 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App; use App;
use App\Http\Mail\SendContactMessage;
use App\Models\Content; use App\Models\Content;
use App\Models\File; use App\Models\File;
use App\Models\Folder; use App\Models\Folder;
use App\Http\Requests\PublicPages\SendMessageRequest; use App\Http\Requests\PublicPages\SendContactMessageRequest;
use App\Http\Resources\PageResource; use App\Http\Resources\PageResource;
use App\Http\Tools\Demo; use App\Http\Tools\Demo;
use App\Mail\SendSupportForm;
use App\Models\Setting; use App\Models\Setting;
use App\Models\Page; use App\Models\Page;
use App\Models\User; use App\Models\User;
@@ -157,18 +157,18 @@ class AppFunctionsController extends Controller
/** /**
* Send contact message from pages * Send contact message from pages
* *
* @param SendMessageRequest $request * @param SendContactMessageRequest $request
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/ */
public function contact_form(SendMessageRequest $request) public function contact_form(SendContactMessageRequest $request)
{ {
// Get receiver email Mail::to(
$receiver = Setting::where('name', 'contact_email')->first(); get_setting('contact_email')
)->send(
new SendContactMessage($request->all())
);
// Send message return response('Done', 201);
Mail::to($receiver->value)->send(new SendSupportForm($request->all()));
return response('Done', 200);
} }
/** /**
@@ -7,7 +7,7 @@ use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
class SendSupportForm extends Mailable class SendContactMessage extends Mailable
{ {
use Queueable, SerializesModels; use Queueable, SerializesModels;
private $request; private $request;
@@ -29,9 +29,7 @@ class SendSupportForm extends Mailable
*/ */
public function build() public function build()
{ {
$from = config('mail.from')['address']; return $this->from(config('mail.from')['address'])
return $this->from($from)
->replyTo($this->request['email']) ->replyTo($this->request['email'])
->subject('New Contact Message from ' . $this->request['email']) ->subject('New Contact Message from ' . $this->request['email'])
->view('mails.contact-message') ->view('mails.contact-message')
@@ -4,7 +4,7 @@ namespace App\Http\Requests\PublicPages;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class SendMessageRequest extends FormRequest class SendContactMessageRequest extends FormRequest
{ {
/** /**
* Determine if the user is authorized to make this request. * Determine if the user is authorized to make this request.
+26
View File
@@ -2,10 +2,15 @@
namespace Tests\Feature\App; namespace Tests\Feature\App;
use App\Http\Mail\SendContactMessage;
use App\Models\Setting;
use App\Notifications\SharedSendViaEmail;
use App\Services\SetupService; use App\Services\SetupService;
use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker; use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Support\Facades\Notification;
use Mail;
use Tests\TestCase; use Tests\TestCase;
class AppTest extends TestCase class AppTest extends TestCase
@@ -30,4 +35,25 @@ class AppTest extends TestCase
$this->get('/') $this->get('/')
->assertStatus(200); ->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);
}
} }