Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/UserTest.php
<?php | <?php | ||||
namespace Tests\Feature; | namespace Tests\Feature; | ||||
use App\Domain; | use App\Domain; | ||||
use App\User; | use App\User; | ||||
use Carbon\Carbon; | |||||
use Illuminate\Support\Facades\Queue; | use Illuminate\Support\Facades\Queue; | ||||
use Tests\TestCase; | use Tests\TestCase; | ||||
class UserTest extends TestCase | class UserTest extends TestCase | ||||
{ | { | ||||
public function setUp(): void | public function setUp(): void | ||||
{ | { | ||||
parent::setUp(); | parent::setUp(); | ||||
▲ Show 20 Lines • Show All 344 Lines • ▼ Show 20 Lines | */ | ||||
* Tests for UserSettingsTrait::setSettings() and getSetting() | * Tests for UserSettingsTrait::setSettings() and getSetting() | ||||
*/ | */ | ||||
public function testUserSettings(): void | public function testUserSettings(): void | ||||
{ | { | ||||
Queue::fake(); | Queue::fake(); | ||||
Queue::assertNothingPushed(); | Queue::assertNothingPushed(); | ||||
$user = $this->getTestUser('UserAccountA@UserAccount.com'); | $user = $this->getTestUser('UserAccountA@UserAccount.com'); | ||||
$now = Carbon::now(); | |||||
Queue::assertPushed(\App\Jobs\UserUpdate::class, 0); | Queue::assertPushed(\App\Jobs\UserUpdate::class, 0); | ||||
// Test default settings | // Test default settings | ||||
// Note: Technicly this tests UserObserver::created() behavior | // Note: Technicly this tests UserObserver::created() behavior | ||||
$all_settings = $user->settings()->orderBy('key')->get(); | $all_settings = $user->settings()->orderBy('key')->get(); | ||||
$this->assertCount(2, $all_settings); | $this->assertCount(2, $all_settings); | ||||
$this->assertSame('country', $all_settings[0]->key); | $this->assertSame('country', $all_settings[0]->key); | ||||
$this->assertSame('CH', $all_settings[0]->value); | $this->assertSame('CH', $all_settings[0]->value); | ||||
$this->assertSame('currency', $all_settings[1]->key); | $this->assertSame('currency', $all_settings[1]->key); | ||||
$this->assertSame('CHF', $all_settings[1]->value); | $this->assertSame('CHF', $all_settings[1]->value); | ||||
$this->assertSame($now->toDateTimeString(), $all_settings[0]->created_at->toDateTimeString()); | |||||
$this->assertSame($now->toDateTimeString(), $all_settings[0]->updated_at->toDateTimeString()); | |||||
// Add a setting | // Add a setting | ||||
$user->setSetting('first_name', 'Firstname'); | $user->setSetting('first_name', 'Firstname'); | ||||
Queue::assertPushed(\App\Jobs\UserUpdate::class, 1); | Queue::assertPushed(\App\Jobs\UserUpdate::class, 1); | ||||
// Note: We test both current user as well as fresh user object | // Note: We test both current user as well as fresh user object | ||||
// to make sure cache works as expected | // to make sure cache works as expected | ||||
▲ Show 20 Lines • Show All 94 Lines • Show Last 20 Lines |