44//
55
66import Foundation
7+ @testable import TablePro
78import TableProPluginKit
89import Testing
9- @testable import TablePro
1010
1111@Suite ( " ConnectionStorage Persistence " )
1212@MainActor
@@ -26,8 +26,12 @@ struct ConnectionStoragePersistenceTests {
2626 withIntermediateDirectories: true
2727 )
2828 let suiteName = " com.TablePro.tests.ConnectionStorage. \( unique) "
29- self . defaults = UserDefaults ( suiteName: suiteName) !
30- let syncDefaults = UserDefaults ( suiteName: " com.TablePro.tests.Sync. \( unique) " ) !
29+ guard let defaults = UserDefaults ( suiteName: suiteName) ,
30+ let syncDefaults = UserDefaults ( suiteName: " com.TablePro.tests.Sync. \( unique) " )
31+ else {
32+ fatalError ( " Failed to create isolated test user defaults " )
33+ }
34+ self . defaults = defaults
3135 let metadata = SyncMetadataStorage ( userDefaults: syncDefaults)
3236 self . syncTracker = SyncChangeTracker ( metadataStorage: metadata)
3337 self . storage = ConnectionStorage (
@@ -49,12 +53,34 @@ struct ConnectionStoragePersistenceTests {
4953 #expect( reloaded. contains { $0. id == connection. id } )
5054 }
5155
56+ @Test ( " updateSafeModeLevel writes the new level through to disk " )
57+ func updateSafeModeLevelWritesThrough( ) {
58+ let connection = DatabaseConnection (
59+ name: " Write Through " ,
60+ host: " 127.0.0.1 " ,
61+ port: 3_306 ,
62+ type: . mysql,
63+ safeModeLevel: . silent
64+ )
65+
66+ storage. addConnection ( connection)
67+ storage. invalidateCache ( )
68+ #expect( storage. loadConnections ( ) . first { $0. id == connection. id } ? . safeModeLevel == . silent)
69+
70+ let updated = storage. updateSafeModeLevel ( . readOnly, for: connection. id)
71+ #expect( updated)
72+
73+ storage. invalidateCache ( )
74+ let reloaded = storage. loadConnections ( ) . first { $0. id == connection. id }
75+ #expect( reloaded? . safeModeLevel == . readOnly)
76+ }
77+
5278 @Test ( " round-trip save and load preserves connections " )
5379 func roundTripSaveLoad( ) {
5480 let connection = DatabaseConnection (
5581 name: " Round Trip Test " ,
5682 host: " 127.0.0.1 " ,
57- port: 5432 ,
83+ port: 5_432 ,
5884 type: . postgresql
5985 )
6086
0 commit comments