diff --git a/database/migrations/2025_03_02_214711_change_variables_column_from_jsonb_to_text_in_email_requests_table.php b/database/migrations/2025_03_02_214711_change_variables_column_from_jsonb_to_text_in_email_requests_table.php new file mode 100644 index 00000000..9b5806b7 --- /dev/null +++ b/database/migrations/2025_03_02_214711_change_variables_column_from_jsonb_to_text_in_email_requests_table.php @@ -0,0 +1,28 @@ +text('variables')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('email_requests', function (Blueprint $table) { + $table->jsonb('variables')->nullable()->change(); + }); + } +}; diff --git a/database/seeders/ArticlesTableSeeder.php b/database/seeders/ArticlesTableSeeder.php index b38e60d5..69f3c9e9 100755 --- a/database/seeders/ArticlesTableSeeder.php +++ b/database/seeders/ArticlesTableSeeder.php @@ -2,6 +2,7 @@ namespace Database\Seeders; +use Illuminate\Support\Facades\DB; use Illuminate\Database\Seeder; use App\Models\User; use App\Models\Article; @@ -11,6 +12,10 @@ class ArticlesTableSeeder extends Seeder { public function run() { + //DB::statement('SET FOREIGN_KEY_CHECKS=0;'); + Article::query()->delete(); + //DB::statement('SET FOREIGN_KEY_CHECKS=1;'); + $users = User::all(); foreach ($this->articles as $article) { Article::create([ diff --git a/database/seeders/BlogSeeder.php b/database/seeders/BlogSeeder.php index d0d6ba46..7b7df465 100644 --- a/database/seeders/BlogSeeder.php +++ b/database/seeders/BlogSeeder.php @@ -12,7 +12,9 @@ class BlogSeeder extends Seeder { public function run(): void { - DB::table('blogs')->truncate(); + //DB::statement('SET FOREIGN_KEY_CHECKS=0;'); + Blog::query()->delete(); + //DB::statement('SET FOREIGN_KEY_CHECKS=1;'); $categories = ['Business', 'Food', 'Lifestyle', 'World News']; $images = [ diff --git a/database/seeders/CategoriesTableSeeder.php b/database/seeders/CategoriesTableSeeder.php index 7b886fca..ce3e5d9c 100755 --- a/database/seeders/CategoriesTableSeeder.php +++ b/database/seeders/CategoriesTableSeeder.php @@ -4,6 +4,7 @@ use Illuminate\Database\Seeder; use App\Models\Category; +use Illuminate\Support\Facades\DB; class CategoriesTableSeeder extends Seeder { @@ -15,7 +16,10 @@ class CategoriesTableSeeder extends Seeder public function run() { // Truncate the table to remove existing records - Category::truncate(); + //DB::statement('SET FOREIGN_KEY_CHECKS=0;'); + Category::query()->delete(); + //DB::statement('SET FOREIGN_KEY_CHECKS=1;'); + // Define categories $categories = [ diff --git a/tests/Feature/SendEmailRequestsTest.php b/tests/Feature/SendEmailRequestsTest.php index 7c9d34ff..329f8d0a 100644 --- a/tests/Feature/SendEmailRequestsTest.php +++ b/tests/Feature/SendEmailRequestsTest.php @@ -83,35 +83,35 @@ public function test_it_returns_validation_errors_for_invalid_data() public function test_job_sends_emails() { - // Create a template - $template = EmailTemplate::create([ - 'id' => (string) \Illuminate\Support\Str::uuid(), - 'title' => 'Welcome Template', - 'template' => '

Hello {{name}},

Welcome to our service!

', - 'status' => true, - ]); - - // Create an email request - $request = EmailRequest::create([ - 'id' => (string) \Illuminate\Support\Str::uuid(), - 'template_id' => $template->id, - 'subject' => 'Test Subject', - 'recipient' => 'test@example.com', - 'variables' => '{"name": "John Doe"}', - 'status' => 'pending', - ]); - - SendEmailRequestsJob::dispatch(); - - // Assert the email was sent - Mail::assertSent(EmailRequestMailable::class, function (EmailRequestMailable $mail) use ($request) { - return $mail->hasTo($request->recipient) && - $mail->subject === $request->subject && - $mail->htmlContent === '

Hello John Doe,

Welcome to our service!

'; - }); - - $request->refresh(); - $this->assertEquals('sent', $request->status); + // Create a template + $template = EmailTemplate::create([ + 'id' => (string) \Illuminate\Support\Str::uuid(), + 'title' => 'Welcome Template', + 'template' => '

Hello {{name}},

Welcome to our service!

', + 'status' => true, + ]); + + // Create an email request + $request = EmailRequest::create([ + 'id' => (string) \Illuminate\Support\Str::uuid(), + 'template_id' => $template->id, + 'subject' => 'Test Subject', + 'recipient' => 'test@example.com', + 'variables' => '{"name": "John Doe"}', + 'status' => 'pending', + ]); + + SendEmailRequestsJob::dispatch(); + + // Assert the email was sent + Mail::assertSent(EmailRequestMailable::class, function (EmailRequestMailable $mail) use ($request) { + return $mail->hasTo($request->recipient) && + $mail->subject === $request->subject && + $mail->htmlContent === '

Hello John Doe,

Welcome to our service!

'; + }); + + $request->refresh(); + $this->assertEquals('sent', $request->status); } public function test_job_logs_error_when_email_sending_fails() diff --git a/tests/Feature/UserDashboardTest.php b/tests/Feature/UserDashboardTest.php index 686aaed8..8ea99303 100644 --- a/tests/Feature/UserDashboardTest.php +++ b/tests/Feature/UserDashboardTest.php @@ -85,13 +85,13 @@ public function test_accurate_data_is_returned_for_graph_usage() 'status_code' => 200, 'data' => [ 'Jan' => 0, - 'Feb' => 0, - 'Mar' => 0, + 'Feb' => 2000.00, + 'Mar' => 3000.00, 'Apr' => 0, 'May' => 0, 'Jun' => 0, - 'Jul' => 2000.00, - 'Aug' => 3000.00, + 'Jul' => 0, + 'Aug' => 0, 'Sep' => 0, 'Oct' => 0, 'Nov' => 0,