1 <?php namespace Tests\User;
5 class UserPreferencesTest extends TestCase
8 public function test_update_sort_preference()
10 $editor = $this->getEditor();
11 $this->actingAs($editor);
13 $updateRequest = $this->patch('/settings/users/' . $editor->id.'/change-sort/books', [
14 'sort' => 'created_at',
17 $updateRequest->assertStatus(302);
19 $this->assertDatabaseHas('settings', [
20 'setting_key' => 'user:' . $editor->id . ':books_sort',
21 'value' => 'created_at'
23 $this->assertDatabaseHas('settings', [
24 'setting_key' => 'user:' . $editor->id . ':books_sort_order',
27 $this->assertEquals('created_at', setting()->getForCurrentUser('books_sort'));
28 $this->assertEquals('desc', setting()->getForCurrentUser('books_sort_order'));
31 public function test_update_sort_preference_defaults()
33 $editor = $this->getEditor();
34 $this->actingAs($editor);
36 $updateRequest = $this->patch('/settings/users/' . $editor->id.'/change-sort/bookshelves', [
40 $updateRequest->assertStatus(302);
42 $this->assertEquals('name', setting()->getForCurrentUser('bookshelves_sort'));
43 $this->assertEquals('asc', setting()->getForCurrentUser('bookshelves_sort_order'));
46 public function test_update_sort_bad_entity_type_handled()
48 $editor = $this->getEditor();
49 $this->actingAs($editor);
51 $updateRequest = $this->patch('/settings/users/' . $editor->id.'/change-sort/dogs', [
55 $updateRequest->assertStatus(500);
57 $this->assertNotEmpty('name', setting()->getForCurrentUser('bookshelves_sort'));
58 $this->assertNotEmpty('asc', setting()->getForCurrentUser('bookshelves_sort_order'));
61 public function test_update_expansion_preference()
63 $editor = $this->getEditor();
64 $this->actingAs($editor);
66 $updateRequest = $this->patch('/settings/users/' . $editor->id.'/update-expansion-preference/home-details', ['expand' => 'true']);
67 $updateRequest->assertStatus(204);
69 $this->assertDatabaseHas('settings', [
70 'setting_key' => 'user:' . $editor->id . ':section_expansion#home-details',
73 $this->assertEquals(true, setting()->getForCurrentUser('section_expansion#home-details'));
75 $invalidKeyRequest = $this->patch('/settings/users/' . $editor->id.'/update-expansion-preference/my-home-details', ['expand' => 'true']);
76 $invalidKeyRequest->assertStatus(500);
79 public function test_toggle_dark_mode()
81 $home = $this->actingAs($this->getEditor())->get('/');
82 $home->assertElementNotExists('.dark-mode');
83 $home->assertSee('Dark Mode');
85 $this->assertEquals(false, setting()->getForCurrentUser('dark-mode-enabled', false));
86 $prefChange = $this->patch('/settings/users/toggle-dark-mode');
87 $prefChange->assertRedirect();
88 $this->assertEquals(true, setting()->getForCurrentUser('dark-mode-enabled'));
90 $home = $this->actingAs($this->getEditor())->get('/');
91 $home->assertElementExists('.dark-mode');
92 $home->assertDontSee('Dark Mode');
93 $home->assertSee('Light Mode');