mirror of
https://github.com/Kovah/LinkAce.git
synced 2025-04-21 23:42:10 +02:00
Add default settings for new users, update the setup, fix some smaller issues (#494)
This commit is contained in:
parent
4e3604ad6c
commit
59bf073081
@ -3,6 +3,7 @@
|
||||
namespace App\Actions\Fortify;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Settings\UserSettings;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
61
app/Actions/Settings/SetDefaultSettingsForUser.php
Normal file
61
app/Actions/Settings/SetDefaultSettingsForUser.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Settings;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Settings\UserSettings;
|
||||
use Spatie\LaravelSettings\Migrations\SettingsMigration;
|
||||
|
||||
class SetDefaultSettingsForUser extends SettingsMigration
|
||||
{
|
||||
public function __construct(protected User $user)
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function up(): void
|
||||
{
|
||||
$group = 'user-' . $this->user->id;
|
||||
$defaults = UserSettings::defaults();
|
||||
|
||||
$this->migrator->add($group . '.timezone', $defaults['timezone']);
|
||||
$this->migrator->add($group . '.date_format', $defaults['date_format']);
|
||||
$this->migrator->add($group . '.time_format', $defaults['time_format']);
|
||||
$this->migrator->add($group . '.locale', $defaults['locale']);
|
||||
|
||||
$this->migrator->add($group . '.links_private_default', $defaults['links_private_default']);
|
||||
$this->migrator->add($group . '.notes_private_default', $defaults['notes_private_default']);
|
||||
$this->migrator->add($group . '.lists_private_default', $defaults['lists_private_default']);
|
||||
$this->migrator->add($group . '.tags_private_default', $defaults['tags_private_default']);
|
||||
|
||||
$this->migrator->add($group . '.archive_backups_enabled', $defaults['archive_backups_enabled']);
|
||||
$this->migrator->add($group . '.archive_private_backups_enabled', $defaults['archive_private_backups_enabled']);
|
||||
|
||||
$this->migrator->add($group . '.listitem_count', $defaults['listitem_count']);
|
||||
$this->migrator->add($group . '.darkmode_setting', $defaults['darkmode_setting']);
|
||||
$this->migrator->add($group . '.link_display_mode', $defaults['link_display_mode']);
|
||||
$this->migrator->add($group . '.links_new_tab', $defaults['links_new_tab']);
|
||||
$this->migrator->add($group . '.markdown_for_text', $defaults['markdown_for_text']);
|
||||
|
||||
$this->migrator->add($group . '.share_email', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_buffer', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_evernote', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_facebook', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_flipboard', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_hackernews', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_linkedin', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_mastodon', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_pinterest', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_pocket', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_reddit', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_skype', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_sms', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_telegram', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_trello', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_tumblr', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_twitter', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_wechat', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_whatsapp', $defaults['share_services']);
|
||||
$this->migrator->add($group . '.share_xing', $defaults['share_services']);
|
||||
}
|
||||
}
|
@ -2,9 +2,10 @@
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Actions\Fortify\CreateNewUser;
|
||||
use App\Actions\Settings\SetDefaultSettingsForUser;
|
||||
use App\Models\User;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class RegisterUserCommand extends Command
|
||||
{
|
||||
@ -32,12 +33,15 @@ class RegisterUserCommand extends Command
|
||||
|
||||
$password = $this->secret('Please enter a password for ' . $name);
|
||||
|
||||
User::create([
|
||||
$user = (new CreateNewUser)->create([
|
||||
'name' => $name,
|
||||
'email' => $email,
|
||||
'password' => Hash::make($password),
|
||||
'password' => $password,
|
||||
'password_confirmation' => $password,
|
||||
]);
|
||||
|
||||
(new SetDefaultSettingsForUser($user))->up();
|
||||
|
||||
$this->info('User ' . $name . ' registered.');
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ class DatabaseController extends Controller
|
||||
*/
|
||||
public function configure(SetupDatabaseRequest $request): RedirectResponse
|
||||
{
|
||||
$this->createTempDatabaseConnection($request->all());
|
||||
$this->createTempDatabaseConnection($request->validated());
|
||||
|
||||
if ($this->databaseHasData() && !$request->has('overwrite_data')) {
|
||||
flash(trans('setup.database.data_present'), 'danger');
|
||||
@ -69,7 +69,7 @@ class DatabaseController extends Controller
|
||||
$this->dbConfig['username'] = $credentials['db_user'];
|
||||
$this->dbConfig['password'] = $credentials['db_password'];
|
||||
|
||||
Config::set('database.connections.setup', $this->dbConfig);
|
||||
Config::set('database.connections.mysql', $this->dbConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -84,7 +84,7 @@ class DatabaseController extends Controller
|
||||
{
|
||||
try {
|
||||
Artisan::call('migrate:fresh', [
|
||||
'--database' => 'setup', // Specify the correct connection
|
||||
'--database' => 'mysql', // Specify the correct connection
|
||||
'--force' => true, // Needed for production
|
||||
'--no-interaction' => true,
|
||||
]);
|
||||
@ -135,7 +135,7 @@ class DatabaseController extends Controller
|
||||
protected function databaseHasData(): bool
|
||||
{
|
||||
try {
|
||||
$present_tables = DB::connection('setup')
|
||||
$presentTables = DB::connection('mysql')
|
||||
->getDoctrineSchemaManager()
|
||||
->listTableNames();
|
||||
} catch (PDOException|\Doctrine\DBAL\Exception $e) {
|
||||
@ -143,6 +143,6 @@ class DatabaseController extends Controller
|
||||
return false;
|
||||
}
|
||||
|
||||
return count($present_tables) > 0;
|
||||
return count($presentTables) > 0;
|
||||
}
|
||||
}
|
||||
|
@ -3,9 +3,8 @@
|
||||
namespace App\Http\Controllers\Setup;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Settings\SettingsAudit;
|
||||
use App\Settings\SystemSettings;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class MetaController extends Controller
|
||||
{
|
||||
@ -22,12 +21,13 @@ class MetaController extends Controller
|
||||
/**
|
||||
* Display a final screen after the setup was successful.
|
||||
*
|
||||
* @param SystemSettings $settings
|
||||
* @return View
|
||||
*/
|
||||
public function complete(): View
|
||||
public function complete(SystemSettings $settings): View
|
||||
{
|
||||
SettingsAudit::create(['key' => 'system_setup_completed', 'value' => true]);
|
||||
Cache::forget('systemsettings');
|
||||
$settings->setup_completed = true;
|
||||
$settings->save();
|
||||
|
||||
return view('setup.complete');
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use App\Settings\UserSettings;
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
|
@ -50,4 +50,31 @@ class UserSettings extends Settings
|
||||
{
|
||||
return 'user-' . auth()->id();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default settings for users
|
||||
*
|
||||
* @return array{string: string|int|bool|null}
|
||||
*/
|
||||
public static function defaults(): array
|
||||
{
|
||||
return [
|
||||
'timezone' => 'UTC',
|
||||
'date_format' => config('linkace.default.date_format'),
|
||||
'time_format' => config('linkace.default.time_format'),
|
||||
'locale' => config('app.fallback_locale'),
|
||||
'links_private_default' => false,
|
||||
'notes_private_default' => false,
|
||||
'lists_private_default' => false,
|
||||
'tags_private_default' => false,
|
||||
'archive_backups_enabled' => true,
|
||||
'archive_private_backups_enabled' => true,
|
||||
'listitem_count' => 24,
|
||||
'darkmode_setting' => 2,
|
||||
'link_display_mode' => 1,
|
||||
'links_new_tab' => false,
|
||||
'markdown_for_text' => true,
|
||||
'share_services' => true,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ return [
|
||||
* additional prefix.
|
||||
*/
|
||||
'cache' => [
|
||||
'enabled' => env('SETTINGS_CACHE_ENABLED', true),
|
||||
'enabled' => false,
|
||||
'store' => null,
|
||||
'prefix' => 'settings',
|
||||
'ttl' => null,
|
||||
|
@ -17,8 +17,6 @@ class MigrateExistingSettings extends SettingsMigration
|
||||
$this->migrateSystemSettings();
|
||||
$this->migrateGuestSettings();
|
||||
$this->migrateUserSettings();
|
||||
|
||||
Artisan::call('settings:clear-cache');
|
||||
}
|
||||
|
||||
protected function migrateSystemSettings(): void
|
||||
@ -40,26 +38,26 @@ class MigrateExistingSettings extends SettingsMigration
|
||||
$this->migrator->add('guest.links_new_tab', (bool)$this->sysSettings->get('guest_links_new_tab', true));
|
||||
$this->migrator->add('guest.darkmode_setting', (int)$this->sysSettings->get('guest_darkmode_setting', 1));
|
||||
|
||||
$this->migrator->add('guest.share_email', (int)$this->sysSettings->get('guest_share_email', false));
|
||||
$this->migrator->add('guest.share_buffer', (int)$this->sysSettings->get('guest_share_buffer', false));
|
||||
$this->migrator->add('guest.share_evernote', (int)$this->sysSettings->get('guest_share_evernote', false));
|
||||
$this->migrator->add('guest.share_facebook', (int)$this->sysSettings->get('guest_share_facebook', false));
|
||||
$this->migrator->add('guest.share_flipboard', (int)$this->sysSettings->get('guest_share_flipboard', false));
|
||||
$this->migrator->add('guest.share_hackernews', (int)$this->sysSettings->get('guest_share_hackernews', false));
|
||||
$this->migrator->add('guest.share_linkedin', (int)$this->sysSettings->get('guest_share_linkedin', false));
|
||||
$this->migrator->add('guest.share_mastodon', (int)$this->sysSettings->get('guest_share_mastodon', false));
|
||||
$this->migrator->add('guest.share_pinterest', (int)$this->sysSettings->get('guest_share_pinterest', false));
|
||||
$this->migrator->add('guest.share_pocket', (int)$this->sysSettings->get('guest_share_pocket', false));
|
||||
$this->migrator->add('guest.share_reddit', (int)$this->sysSettings->get('guest_share_reddit', false));
|
||||
$this->migrator->add('guest.share_skype', (int)$this->sysSettings->get('guest_share_skype', false));
|
||||
$this->migrator->add('guest.share_sms', (int)$this->sysSettings->get('guest_share_sms', false));
|
||||
$this->migrator->add('guest.share_telegram', (int)$this->sysSettings->get('guest_share_telegram', false));
|
||||
$this->migrator->add('guest.share_trello', (int)$this->sysSettings->get('guest_share_trello', false));
|
||||
$this->migrator->add('guest.share_tumblr', (int)$this->sysSettings->get('guest_share_tumblr', false));
|
||||
$this->migrator->add('guest.share_twitter', (int)$this->sysSettings->get('guest_share_twitter', false));
|
||||
$this->migrator->add('guest.share_wechat', (int)$this->sysSettings->get('guest_share_wechat', false));
|
||||
$this->migrator->add('guest.share_whatsapp', (int)$this->sysSettings->get('guest_share_whatsapp', false));
|
||||
$this->migrator->add('guest.share_xing', (int)$this->sysSettings->get('guest_share_xing', false));
|
||||
$this->migrator->add('guest.share_email', (bool)$this->sysSettings->get('guest_share_email', false));
|
||||
$this->migrator->add('guest.share_buffer', (bool)$this->sysSettings->get('guest_share_buffer', false));
|
||||
$this->migrator->add('guest.share_evernote', (bool)$this->sysSettings->get('guest_share_evernote', false));
|
||||
$this->migrator->add('guest.share_facebook', (bool)$this->sysSettings->get('guest_share_facebook', false));
|
||||
$this->migrator->add('guest.share_flipboard', (bool)$this->sysSettings->get('guest_share_flipboard', false));
|
||||
$this->migrator->add('guest.share_hackernews', (bool)$this->sysSettings->get('guest_share_hackernews', false));
|
||||
$this->migrator->add('guest.share_linkedin', (bool)$this->sysSettings->get('guest_share_linkedin', false));
|
||||
$this->migrator->add('guest.share_mastodon', (bool)$this->sysSettings->get('guest_share_mastodon', false));
|
||||
$this->migrator->add('guest.share_pinterest', (bool)$this->sysSettings->get('guest_share_pinterest', false));
|
||||
$this->migrator->add('guest.share_pocket', (bool)$this->sysSettings->get('guest_share_pocket', false));
|
||||
$this->migrator->add('guest.share_reddit', (bool)$this->sysSettings->get('guest_share_reddit', false));
|
||||
$this->migrator->add('guest.share_skype', (bool)$this->sysSettings->get('guest_share_skype', false));
|
||||
$this->migrator->add('guest.share_sms', (bool)$this->sysSettings->get('guest_share_sms', false));
|
||||
$this->migrator->add('guest.share_telegram', (bool)$this->sysSettings->get('guest_share_telegram', false));
|
||||
$this->migrator->add('guest.share_trello', (bool)$this->sysSettings->get('guest_share_trello', false));
|
||||
$this->migrator->add('guest.share_tumblr', (bool)$this->sysSettings->get('guest_share_tumblr', false));
|
||||
$this->migrator->add('guest.share_twitter', (bool)$this->sysSettings->get('guest_share_twitter', false));
|
||||
$this->migrator->add('guest.share_wechat', (bool)$this->sysSettings->get('guest_share_wechat', false));
|
||||
$this->migrator->add('guest.share_whatsapp', (bool)$this->sysSettings->get('guest_share_whatsapp', false));
|
||||
$this->migrator->add('guest.share_xing', (bool)$this->sysSettings->get('guest_share_xing', false));
|
||||
}
|
||||
|
||||
protected function migrateUserSettings(): void
|
||||
@ -108,30 +106,30 @@ class MigrateExistingSettings extends SettingsMigration
|
||||
);
|
||||
|
||||
$this->migrator->add('user-1.listitem_count', (int)$this->userSettings->get('listitem_count', 24));
|
||||
$this->migrator->add('user-1.darkmode_setting', (int)$this->userSettings->get('darkmode_setting', 1));
|
||||
$this->migrator->add('user-1.darkmode_setting', (int)$this->userSettings->get('darkmode_setting', 2));
|
||||
$this->migrator->add('user-1.link_display_mode', (int)$this->userSettings->get('link_display_mode', 1));
|
||||
$this->migrator->add('user-1.links_new_tab', (bool)$this->userSettings->get('links_new_tab', false));
|
||||
$this->migrator->add('user-1.markdown_for_text', (bool)$this->userSettings->get('markdown_for_text', 1));
|
||||
$this->migrator->add('user-1.markdown_for_text', (bool)$this->userSettings->get('markdown_for_text', true));
|
||||
|
||||
$this->migrator->add('user-1.share_email', (int)$this->userSettings->get('share_email', false));
|
||||
$this->migrator->add('user-1.share_buffer', (int)$this->userSettings->get('share_buffer', false));
|
||||
$this->migrator->add('user-1.share_evernote', (int)$this->userSettings->get('share_evernote', false));
|
||||
$this->migrator->add('user-1.share_facebook', (int)$this->userSettings->get('share_facebook', false));
|
||||
$this->migrator->add('user-1.share_flipboard', (int)$this->userSettings->get('share_flipboard', false));
|
||||
$this->migrator->add('user-1.share_hackernews', (int)$this->userSettings->get('share_hackernews', false));
|
||||
$this->migrator->add('user-1.share_linkedin', (int)$this->userSettings->get('share_linkedin', false));
|
||||
$this->migrator->add('user-1.share_mastodon', (int)$this->userSettings->get('share_mastodon', false));
|
||||
$this->migrator->add('user-1.share_pinterest', (int)$this->userSettings->get('share_pinterest', false));
|
||||
$this->migrator->add('user-1.share_pocket', (int)$this->userSettings->get('share_pocket', false));
|
||||
$this->migrator->add('user-1.share_reddit', (int)$this->userSettings->get('share_reddit', false));
|
||||
$this->migrator->add('user-1.share_skype', (int)$this->userSettings->get('share_skype', false));
|
||||
$this->migrator->add('user-1.share_sms', (int)$this->userSettings->get('share_sms', false));
|
||||
$this->migrator->add('user-1.share_telegram', (int)$this->userSettings->get('share_telegram', false));
|
||||
$this->migrator->add('user-1.share_trello', (int)$this->userSettings->get('share_trello', false));
|
||||
$this->migrator->add('user-1.share_tumblr', (int)$this->userSettings->get('share_tumblr', false));
|
||||
$this->migrator->add('user-1.share_twitter', (int)$this->userSettings->get('share_twitter', false));
|
||||
$this->migrator->add('user-1.share_wechat', (int)$this->userSettings->get('share_wechat', false));
|
||||
$this->migrator->add('user-1.share_whatsapp', (int)$this->userSettings->get('share_whatsapp', false));
|
||||
$this->migrator->add('user-1.share_xing', (int)$this->userSettings->get('share_xing', false));
|
||||
$this->migrator->add('user-1.share_email', (bool)$this->userSettings->get('share_email', true));
|
||||
$this->migrator->add('user-1.share_buffer', (bool)$this->userSettings->get('share_buffer', true));
|
||||
$this->migrator->add('user-1.share_evernote', (bool)$this->userSettings->get('share_evernote', true));
|
||||
$this->migrator->add('user-1.share_facebook', (bool)$this->userSettings->get('share_facebook', true));
|
||||
$this->migrator->add('user-1.share_flipboard', (bool)$this->userSettings->get('share_flipboard', true));
|
||||
$this->migrator->add('user-1.share_hackernews', (bool)$this->userSettings->get('share_hackernews', true));
|
||||
$this->migrator->add('user-1.share_linkedin', (bool)$this->userSettings->get('share_linkedin', true));
|
||||
$this->migrator->add('user-1.share_mastodon', (bool)$this->userSettings->get('share_mastodon', true));
|
||||
$this->migrator->add('user-1.share_pinterest', (bool)$this->userSettings->get('share_pinterest', true));
|
||||
$this->migrator->add('user-1.share_pocket', (bool)$this->userSettings->get('share_pocket', true));
|
||||
$this->migrator->add('user-1.share_reddit', (bool)$this->userSettings->get('share_reddit', true));
|
||||
$this->migrator->add('user-1.share_skype', (bool)$this->userSettings->get('share_skype', true));
|
||||
$this->migrator->add('user-1.share_sms', (bool)$this->userSettings->get('share_sms', true));
|
||||
$this->migrator->add('user-1.share_telegram', (bool)$this->userSettings->get('share_telegram', true));
|
||||
$this->migrator->add('user-1.share_trello', (bool)$this->userSettings->get('share_trello', true));
|
||||
$this->migrator->add('user-1.share_tumblr', (bool)$this->userSettings->get('share_tumblr', true));
|
||||
$this->migrator->add('user-1.share_twitter', (bool)$this->userSettings->get('share_twitter', true));
|
||||
$this->migrator->add('user-1.share_wechat', (bool)$this->userSettings->get('share_wechat', true));
|
||||
$this->migrator->add('user-1.share_whatsapp', (bool)$this->userSettings->get('share_whatsapp', true));
|
||||
$this->migrator->add('user-1.share_xing', (bool)$this->userSettings->get('share_xing', true));
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace Tests\Commands;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Settings\SettingsAudit;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
@ -10,13 +11,10 @@ class RegisterUserCommandTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
public function testCommandWithInput(): void
|
||||
{
|
||||
User::factory()->create(); // Create admin dummy user
|
||||
|
||||
$this->artisan('registeruser', [
|
||||
'name' => 'Test',
|
||||
'email' => 'test@linkace.org',
|
||||
@ -25,7 +23,9 @@ class RegisterUserCommandTest extends TestCase
|
||||
->expectsOutput('User Test registered.')
|
||||
->assertExitCode(0);
|
||||
|
||||
$databaseUser = User::first();
|
||||
$databaseUser = User::latest('id')->first();
|
||||
|
||||
//var_dump(User::all());
|
||||
|
||||
$this->assertEquals('Test', $databaseUser->name);
|
||||
$this->assertEquals('test@linkace.org', $databaseUser->email);
|
||||
@ -33,6 +33,8 @@ class RegisterUserCommandTest extends TestCase
|
||||
|
||||
public function testCommandWithoutInput(): void
|
||||
{
|
||||
User::factory()->create(); // Create admin dummy user
|
||||
|
||||
$this->artisan('registeruser')
|
||||
->expectsQuestion('Please enter the user name', 'Test')
|
||||
->expectsQuestion('Please enter the user email address', 'test@linkace.org')
|
||||
@ -40,7 +42,7 @@ class RegisterUserCommandTest extends TestCase
|
||||
->expectsOutput('User Test registered.')
|
||||
->assertExitCode(0);
|
||||
|
||||
$databaseUser = User::first();
|
||||
$databaseUser = User::latest('id')->first();
|
||||
|
||||
$this->assertEquals('Test', $databaseUser->name);
|
||||
$this->assertEquals('test@linkace.org', $databaseUser->email);
|
||||
|
@ -56,7 +56,7 @@ class SettingsEntryTest extends TestCase
|
||||
public function testDarkmodeSettingsChange(): void
|
||||
{
|
||||
$settings = app(UserSettings::class);
|
||||
$settings->darkmode_setting = 2;
|
||||
$settings->darkmode_setting = 0;
|
||||
$settings->save();
|
||||
|
||||
$historyEntry = Audit::where('auditable_type', SettingsAudit::class)->with('auditable')->latest()->first();
|
||||
@ -64,7 +64,7 @@ class SettingsEntryTest extends TestCase
|
||||
$output = (new SettingsEntry($historyEntry))->render();
|
||||
|
||||
$this->assertStringContainsString(
|
||||
'Changed Darkmode for User 1 from <code>Permanent</code> to <code>Automatically</code>',
|
||||
'Changed Darkmode for User 1 from <code>Automatically</code> to <code>Disabled</code>',
|
||||
$output
|
||||
);
|
||||
}
|
||||
@ -104,7 +104,7 @@ class SettingsEntryTest extends TestCase
|
||||
public function testSharingSettingsChange(): void
|
||||
{
|
||||
$settings = app(UserSettings::class);
|
||||
$settings->share_email = true;
|
||||
$settings->share_email = false;
|
||||
$settings->save();
|
||||
|
||||
$historyEntry = Audit::where('auditable_type', SettingsAudit::class)->with('auditable')->latest()->first();
|
||||
@ -112,7 +112,7 @@ class SettingsEntryTest extends TestCase
|
||||
$output = (new SettingsEntry($historyEntry))->render();
|
||||
|
||||
$this->assertStringContainsString(
|
||||
'Changed Link Sharing: Email from <code>No</code> to <code>Yes</code>',
|
||||
'Changed Link Sharing: Email from <code>Yes</code> to <code>No</code>',
|
||||
$output
|
||||
);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user