Skip to content
This repository was archived by the owner on Jan 2, 2024. It is now read-only.

Commit d224466

Browse files
committed
Added User ID test
1 parent de41407 commit d224466

File tree

2 files changed

+55
-4
lines changed

2 files changed

+55
-4
lines changed

src/Listeners/DispatchAnalyticsJob.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ private function userId(): ?string
3838
return null;
3939
}
4040

41-
if (!Auth::check()) {
42-
return null;
43-
}
44-
4541
return Auth::id();
4642
}
4743
}

tests/EventListenerTest.php

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace ProtoneMedia\AnalyticsEventTracking\Tests;
44

5+
use Illuminate\Foundation\Auth\User;
6+
use Illuminate\Support\Facades\Auth;
57
use Illuminate\Support\Facades\Bus;
68
use ProtoneMedia\AnalyticsEventTracking\Jobs\SendEventToAnalytics;
79
use ProtoneMedia\AnalyticsEventTracking\Tests\Fakes\BroadcastMe;
@@ -33,4 +35,57 @@ public function it_can_dispatch_jobs_on_a_dedicated_queue()
3335
return $job->queue === 'http';
3436
});
3537
}
38+
39+
private function authenticateUser()
40+
{
41+
Auth::login(
42+
User::unguarded(fn () => new User(['id' => 1337]))
43+
);
44+
}
45+
46+
/** @test */
47+
public function it_sets_the_user_id_if_authenticated_and_configuration_setting_is_enabled()
48+
{
49+
config(['analytics-event-tracking.send_user_id' => true]);
50+
51+
$this->authenticateUser();
52+
53+
Bus::fake();
54+
55+
event(new BroadcastMe);
56+
57+
Bus::assertDispatched(SendEventToAnalytics::class, function ($job) {
58+
return $job->userId == 1337;
59+
});
60+
}
61+
62+
/** @test */
63+
public function it_doesnt_set_the_user_id_if_authenticated_and_configuration_setting_is_disabled()
64+
{
65+
config(['analytics-event-tracking.send_user_id' => false]);
66+
67+
$this->authenticateUser();
68+
69+
Bus::fake();
70+
71+
event(new BroadcastMe);
72+
73+
Bus::assertDispatched(SendEventToAnalytics::class, function ($job) {
74+
return is_null($job->userId);
75+
});
76+
}
77+
78+
/** @test */
79+
public function it_doesnt_set_the_user_id_if_not_authenticated()
80+
{
81+
config(['analytics-event-tracking.send_user_id' => true]);
82+
83+
Bus::fake();
84+
85+
event(new BroadcastMe);
86+
87+
Bus::assertDispatched(SendEventToAnalytics::class, function ($job) {
88+
return is_null($job->userId);
89+
});
90+
}
3691
}

0 commit comments

Comments
 (0)