Explorar o código

Fix ScanForNewRelease event triggering whereas checkForUpdate is disabled - Fixes #462

Bubka hai 4 meses
pai
achega
f6a595807d
Modificáronse 2 ficheiros con 17 adicións e 3 borrados
  1. 5 3
      app/Http/Controllers/SinglePageController.php
  2. 12 0
      tests/Feature/ViewTest.php

+ 5 - 3
app/Http/Controllers/SinglePageController.php

@@ -5,7 +5,6 @@ namespace App\Http\Controllers;
 use App\Events\ScanForNewReleaseCalled;
 use App\Facades\Settings;
 use Illuminate\Support\Facades\App;
-use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Vite;
 
 class SinglePageController extends Controller
@@ -17,12 +16,15 @@ class SinglePageController extends Controller
      */
     public function index()
     {
-        event(new ScanForNewReleaseCalled);
+        $appSettings = Settings::all();
+
+        if ($appSettings['checkForUpdate'] == true) {
+            event(new ScanForNewReleaseCalled);
+        }
 
         // We only share necessary and acceptable values with the HTML front-end.
         // But all the properties have to be pushed to init the appSetting store state correctly,
         // so we set them to null, they will be fed later by the front-end
-        $appSettings = Settings::all();
         $publicSettings = $appSettings->only([
             'disableRegistration',
             'enableSso',

+ 12 - 0
tests/Feature/ViewTest.php

@@ -3,6 +3,7 @@
 namespace Tests\Feature;
 
 use App\Events\ScanForNewReleaseCalled;
+use App\Facades\Settings;
 use App\Http\Controllers\SinglePageController;
 use Illuminate\Support\Facades\Event;
 use Illuminate\Support\Facades\Http;
@@ -60,4 +61,15 @@ class ViewTest extends FeatureTestCase
 
         Event::assertDispatched(ScanForNewReleaseCalled::class);
     }
+
+    #[Test]
+    public function test_calling_index_does_not_fire_ScanForNewReleaseCalled_event()
+    {
+        Event::fake();
+        Settings::set('checkForUpdate', false);
+
+        $this->get('/');
+
+        Event::assertNotDispatched(ScanForNewReleaseCalled::class);
+    }
 }