diff --git a/src/Tests/AliasVault.E2ETests/Tests/Admin/ServerSettingsTests.cs b/src/Tests/AliasVault.E2ETests/Tests/Admin/ServerSettingsTests.cs
new file mode 100644
index 000000000..55d2212da
--- /dev/null
+++ b/src/Tests/AliasVault.E2ETests/Tests/Admin/ServerSettingsTests.cs
@@ -0,0 +1,90 @@
+//-----------------------------------------------------------------------
+//
+// Copyright (c) lanedirt. All rights reserved.
+// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
+//
+//-----------------------------------------------------------------------
+
+namespace AliasVault.E2ETests.Tests.Admin;
+
+using Microsoft.EntityFrameworkCore;
+
+///
+/// End-to-end tests for server settings feature.
+///
+[Parallelizable(ParallelScope.Self)]
+[Category("AdminTests")]
+[TestFixture]
+public class ServerSettingsTests : AdminPlaywrightTest
+{
+ ///
+ /// Test if mutating server settings works correctly.
+ ///
+ /// Async task.
+ [Test]
+ public async Task ServerSettingsMutationTest()
+ {
+ // Navigate to server settings page
+ await NavigateBrowser("settings/server");
+ await WaitForUrlAsync("settings/server", "Server settings");
+
+ // Set new values for retention settings
+ await Page.Locator("input[id='generalLogRetention']").FillAsync("45");
+ await Page.Locator("input[id='authLogRetention']").FillAsync("120");
+ await Page.Locator("input[id='emailRetention']").FillAsync("60");
+ await Page.Locator("input[id='maxEmails']").FillAsync("200");
+
+ // Set maintenance time
+ await Page.Locator("input[id='schedule']").FillAsync("03:30");
+
+ // Uncheck Sunday and Saturday from maintenance days
+ await Page.Locator("input[id='day_7']").UncheckAsync(); // Sunday
+ await Page.Locator("input[id='day_6']").UncheckAsync(); // Saturday
+
+ // Save changes
+ var saveButton = Page.Locator("text=Save changes");
+ await saveButton.ClickAsync();
+
+ // Wait for success message
+ await WaitForUrlAsync("settings/server", "Settings saved successfully");
+
+ // Verify settings in database
+ var settings = await DbContext.ServerSettings.ToListAsync();
+
+ // Check retention settings
+ var generalLogRetention = settings.Find(s => s.Key == "GeneralLogRetentionDays");
+ Assert.That(generalLogRetention?.Value, Is.EqualTo("45"), "General log retention days not saved correctly");
+
+ var authLogRetention = settings.Find(s => s.Key == "AuthLogRetentionDays");
+ Assert.That(authLogRetention?.Value, Is.EqualTo("120"), "Auth log retention days not saved correctly");
+
+ var emailRetention = settings.Find(s => s.Key == "EmailRetentionDays");
+ Assert.That(emailRetention?.Value, Is.EqualTo("60"), "Email retention days not saved correctly");
+
+ var maxEmails = settings.Find(s => s.Key == "MaxEmailsPerUser");
+ Assert.That(maxEmails?.Value, Is.EqualTo("200"), "Max emails per user not saved correctly");
+
+ // Check maintenance schedule
+ var maintenanceTime = settings.Find(s => s.Key == "MaintenanceTime");
+ Assert.That(maintenanceTime?.Value, Is.EqualTo("03:30"), "Maintenance time not saved correctly");
+
+ var taskRunnerDays = settings.Find(s => s.Key == "TaskRunnerDays");
+ Assert.That(taskRunnerDays?.Value, Is.EqualTo("1,2,3,4,5"), "Task runner days not saved correctly");
+
+ // Refresh page and verify values persist
+ await Page.ReloadAsync();
+ await WaitForUrlAsync("settings/server", "Server settings");
+
+ var generalLogRetentionValue = await Page.Locator("input[id='generalLogRetention']").InputValueAsync();
+ Assert.That(generalLogRetentionValue, Is.EqualTo("45"), "General log retention value not persisted after refresh");
+
+ var maintenanceTimeValue = await Page.Locator("input[id='schedule']").InputValueAsync();
+ Assert.That(maintenanceTimeValue, Does.Contain("03:30"), "Maintenance time value not persisted after refresh");
+
+ // Verify weekend days are still unchecked
+ var sundayChecked = await Page.Locator("input[id='day_7']").IsCheckedAsync();
+ var saturdayChecked = await Page.Locator("input[id='day_6']").IsCheckedAsync();
+ Assert.That(sundayChecked, Is.False, "Sunday checkbox should be unchecked");
+ Assert.That(saturdayChecked, Is.False, "Saturday checkbox should be unchecked");
+ }
+}