61 lines
3.0 KiB
Swift
61 lines
3.0 KiB
Swift
import TermindApplication
|
|
import Testing
|
|
|
|
@Suite @MainActor
|
|
struct SSHKeyReplacementDraftTests {
|
|
@Test func restoringOriginalPrivateKeyRestoresOnlyAutomaticallyClearedFields() {
|
|
var draft = SSHKeyReplacementDraft()
|
|
var publicKey = "original-public"
|
|
var passphrase = "original-passphrase"
|
|
for _ in 0..<2 {
|
|
draft.privateKeyChanged(
|
|
from: "original", to: "replacement", originalPrivateKey: "original",
|
|
originalPublicKey: "original-public", originalPassphrase: "original-passphrase",
|
|
publicKey: &publicKey, passphrase: &passphrase)
|
|
#expect(publicKey.isEmpty && passphrase.isEmpty)
|
|
draft.privateKeyChanged(
|
|
from: "replacement", to: "another-replacement", originalPrivateKey: "original",
|
|
originalPublicKey: "original-public", originalPassphrase: "original-passphrase",
|
|
publicKey: &publicKey, passphrase: &passphrase)
|
|
#expect(publicKey.isEmpty && passphrase.isEmpty)
|
|
draft.privateKeyChanged(
|
|
from: "another-replacement", to: "original", originalPrivateKey: "original",
|
|
originalPublicKey: "original-public", originalPassphrase: "original-passphrase",
|
|
publicKey: &publicKey, passphrase: &passphrase)
|
|
#expect(publicKey == "original-public" && passphrase == "original-passphrase")
|
|
}
|
|
}
|
|
|
|
@Test func revertingPrivateKeyPreservesPreviouslyRemovedFields() {
|
|
var draft = SSHKeyReplacementDraft()
|
|
var publicKey = ""
|
|
var passphrase = ""
|
|
draft.privateKeyChanged(
|
|
from: "original", to: "replacement", originalPrivateKey: "original",
|
|
originalPublicKey: "original-public", originalPassphrase: "original-passphrase",
|
|
publicKey: &publicKey, passphrase: &passphrase)
|
|
draft.privateKeyChanged(
|
|
from: "replacement", to: "original", originalPrivateKey: "original",
|
|
originalPublicKey: "original-public", originalPassphrase: "original-passphrase",
|
|
publicKey: &publicKey, passphrase: &passphrase)
|
|
#expect(publicKey.isEmpty && passphrase.isEmpty)
|
|
}
|
|
|
|
@Test func revertingPrivateKeyDoesNotOverwriteNewlyEnteredFields() {
|
|
var draft = SSHKeyReplacementDraft()
|
|
var publicKey = "original-public"
|
|
var passphrase = "original-passphrase"
|
|
draft.privateKeyChanged(
|
|
from: "original", to: "replacement", originalPrivateKey: "original",
|
|
originalPublicKey: "original-public", originalPassphrase: "original-passphrase",
|
|
publicKey: &publicKey, passphrase: &passphrase)
|
|
publicKey = "edited-public"
|
|
passphrase = "edited-passphrase"
|
|
draft.privateKeyChanged(
|
|
from: "replacement", to: "original", originalPrivateKey: "original",
|
|
originalPublicKey: "original-public", originalPassphrase: "original-passphrase",
|
|
publicKey: &publicKey, passphrase: &passphrase)
|
|
#expect(publicKey == "edited-public" && passphrase == "edited-passphrase")
|
|
}
|
|
}
|