2@testable import ParseableViewer
4final class ConnectionStoreTests: XCTestCase {
5 private let testSuiteKey = "parseable_connections_test"
7 override func tearDown() {
9 // Clean up any test data from UserDefaults
10 UserDefaults.standard.removeObject(forKey: "parseable_connections")
11 UserDefaults.standard.removeObject(forKey: "parseable_active_connection_id")
14 // MARK: - Active connection ID
16 func testSaveAndLoadActiveConnectionID() {
18 ConnectionStore.saveActiveConnectionID(id)
19 let loaded = ConnectionStore.loadActiveConnectionID()
20 XCTAssertEqual(loaded, id)
23 func testSaveNilActiveConnectionID() {
25 ConnectionStore.saveActiveConnectionID(id)
26 ConnectionStore.saveActiveConnectionID(nil)
27 let loaded = ConnectionStore.loadActiveConnectionID()
31 func testLoadActiveConnectionIDWhenEmpty() {
32 UserDefaults.standard.removeObject(forKey: "parseable_active_connection_id")
33 let loaded = ConnectionStore.loadActiveConnectionID()
37 // MARK: - Connection persistence
39 func testLoadConnectionsWhenEmpty() {
40 UserDefaults.standard.removeObject(forKey: "parseable_connections")
41 let connections = ConnectionStore.loadConnections()
42 XCTAssertTrue(connections.isEmpty)
45 func testSaveAndLoadConnections() {
46 let connection = ServerConnection(
48 url: "https://logs.example.com",
52 ConnectionStore.saveConnections([connection])
53 let loaded = ConnectionStore.loadConnections()
54 XCTAssertEqual(loaded.count, 1)
55 XCTAssertEqual(loaded[0].name, "Test Server")
56 XCTAssertEqual(loaded[0].url, "https://logs.example.com")
57 XCTAssertEqual(loaded[0].username, "admin")
60 func testSaveMultipleConnections() {
61 let c1 = ServerConnection(name: "Prod", url: "https://prod.example.com", username: "admin", password: "p1")
62 let c2 = ServerConnection(name: "Dev", url: "https://dev.example.com", username: "dev", password: "p2")
63 ConnectionStore.saveConnections([c1, c2])
64 let loaded = ConnectionStore.loadConnections()
65 XCTAssertEqual(loaded.count, 2)
68 func testPasswordNotInUserDefaults() {
69 let connection = ServerConnection(
71 url: "https://example.com",
73 password: "supersecret"
75 ConnectionStore.saveConnections([connection])
77 // Verify password is NOT in the UserDefaults data
78 if let data = UserDefaults.standard.data(forKey: "parseable_connections"),
79 let jsonString = String(data: data, encoding: .utf8) {
80 XCTAssertFalse(jsonString.contains("supersecret"),
81 "Password should not be stored in UserDefaults JSON")
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list