Signal-iOS/SignalServiceKit/tests/MessageBackup/BackupSettingsStoreTests.swift
2025-08-06 15:39:25 -05:00

69 lines
2.0 KiB
Swift

//
// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import LibSignalClient
import XCTest
@testable import SignalServiceKit
class BackupSettingsStoreTests: XCTestCase {
private var db: InMemoryDB!
private var backupSettingsStore = BackupSettingsStore()
override func setUp() {
super.setUp()
db = InMemoryDB()
}
func testLastAndFirstBackupDate() throws {
var lastBackup = db.read { tx in
backupSettingsStore.lastBackupDate(tx: tx)
}
XCTAssertNil(lastBackup, "Last backup should not be set")
db.write { tx in
backupSettingsStore.setLastBackupDate(Date(), tx: tx)
}
lastBackup = db.read { tx in
backupSettingsStore.lastBackupDate(tx: tx)
}
XCTAssertNotNil(lastBackup, "Last backup should be set")
var firstBackupDate = db.read { tx in
backupSettingsStore.firstBackupDate(tx: tx)
}
XCTAssertNotNil(firstBackupDate, "First backup should be set with last backup")
XCTAssertEqual(firstBackupDate, lastBackup, "First and last backups should be the same")
let betweenBackupsDate = Date()
db.write { tx in
backupSettingsStore.setLastBackupDate(Date(), tx: tx)
}
firstBackupDate = db.read { tx in
backupSettingsStore.firstBackupDate(tx: tx)
}
XCTAssertTrue(firstBackupDate! < betweenBackupsDate, "First backup should not update after it is first set")
}
func testBackupUpdatesRefreshDate() throws {
var lastBackupRefresh = db.read { tx in
backupSettingsStore.lastBackupRefreshDate(tx: tx)
}
XCTAssertNil(lastBackupRefresh, "Last backup should not be set")
db.write { tx in
backupSettingsStore.setLastBackupDate(Date(), tx: tx)
}
lastBackupRefresh = db.read { tx in
backupSettingsStore.lastBackupRefreshDate(tx: tx)
}
XCTAssertNotNil(lastBackupRefresh, "Last backup should be set")
}
}