Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/UserTest.php
Show First 20 Lines • Show All 329 Lines • ▼ Show 20 Lines | public function testSetAliases(): void | ||||
$user->setAliases([]); | $user->setAliases([]); | ||||
Queue::assertPushed(\App\Jobs\UserUpdate::class, 4); | Queue::assertPushed(\App\Jobs\UserUpdate::class, 4); | ||||
$this->assertCount(0, $user->aliases()->get()); | $this->assertCount(0, $user->aliases()->get()); | ||||
} | } | ||||
/** | /** | ||||
* Tests for UserSettingsTrait::setSettings() | * Tests for UserSettingsTrait::setSettings() and getSetting() | ||||
*/ | */ | ||||
public function testSetSettings(): void | public function testUserSettings(): void | ||||
{ | { | ||||
$this->markTestIncomplete(); | Queue::fake(); | ||||
Queue::assertNothingPushed(); | |||||
$user = $this->getTestUser('UserAccountA@UserAccount.com'); | |||||
Queue::assertPushed(\App\Jobs\UserUpdate::class, 0); | |||||
// Test default settings | |||||
// Note: Technicly this tests UserObserver::created() behavior | |||||
$all_settings = $user->settings()->orderBy('key')->get(); | |||||
$this->assertCount(2, $all_settings); | |||||
$this->assertSame('country', $all_settings[0]->key); | |||||
$this->assertSame('CH', $all_settings[0]->value); | |||||
$this->assertSame('currency', $all_settings[1]->key); | |||||
$this->assertSame('CHF', $all_settings[1]->value); | |||||
// Add a setting | |||||
$user->setSetting('first_name', 'Firstname'); | |||||
Queue::assertPushed(\App\Jobs\UserUpdate::class, 1); | |||||
// Note: We test both current user as well as fresh user object | |||||
// to make sure cache works as expected | |||||
$this->assertSame('Firstname', $user->getSetting('first_name')); | |||||
$this->assertSame('Firstname', $user->fresh()->getSetting('first_name')); | |||||
// Update a setting | |||||
$user->setSetting('first_name', 'Firstname1'); | |||||
Queue::assertPushed(\App\Jobs\UserUpdate::class, 2); | |||||
// Note: We test both current user as well as fresh user object | |||||
// to make sure cache works as expected | |||||
$this->assertSame('Firstname1', $user->getSetting('first_name')); | |||||
$this->assertSame('Firstname1', $user->fresh()->getSetting('first_name')); | |||||
// Delete a setting (null) | |||||
$user->setSetting('first_name', null); | |||||
Queue::assertPushed(\App\Jobs\UserUpdate::class, 3); | |||||
// Note: We test both current user as well as fresh user object | |||||
// to make sure cache works as expected | |||||
$this->assertSame(null, $user->getSetting('first_name')); | |||||
$this->assertSame(null, $user->fresh()->getSetting('first_name')); | |||||
// Delete a setting (empty string) | |||||
$user->setSetting('first_name', 'Firstname1'); | |||||
$user->setSetting('first_name', ''); | |||||
Queue::assertPushed(\App\Jobs\UserUpdate::class, 5); | |||||
// Note: We test both current user as well as fresh user object | |||||
// to make sure cache works as expected | |||||
$this->assertSame(null, $user->getSetting('first_name')); | |||||
$this->assertSame(null, $user->fresh()->getSetting('first_name')); | |||||
// Set multiple settings at once | |||||
$user->setSettings([ | |||||
'first_name' => 'Firstname2', | |||||
'last_name' => 'Lastname2', | |||||
'country' => null, | |||||
]); | |||||
// TODO: This really should create a single UserUpdate job, not 3 | |||||
Queue::assertPushed(\App\Jobs\UserUpdate::class, 8); | |||||
// Note: We test both current user as well as fresh user object | |||||
// to make sure cache works as expected | |||||
$this->assertSame('Firstname2', $user->getSetting('first_name')); | |||||
$this->assertSame('Firstname2', $user->fresh()->getSetting('first_name')); | |||||
$this->assertSame('Lastname2', $user->getSetting('last_name')); | |||||
$this->assertSame('Lastname2', $user->fresh()->getSetting('last_name')); | |||||
$this->assertSame(null, $user->getSetting('country')); | |||||
$this->assertSame(null, $user->fresh()->getSetting('country')); | |||||
$all_settings = $user->settings()->orderBy('key')->get(); | |||||
$this->assertCount(3, $all_settings); | |||||
} | } | ||||
/** | /** | ||||
* Tests for User::users() | * Tests for User::users() | ||||
*/ | */ | ||||
public function testUsers(): void | public function testUsers(): void | ||||
{ | { | ||||
$jack = $this->getTestUser('jack@kolab.org'); | $jack = $this->getTestUser('jack@kolab.org'); | ||||
Show All 31 Lines |