Skip to content

Commit 2139f17

Browse files
committed
test: add key_hash clearing logic in account dirty state tests
1 parent 23f0063 commit 2139f17

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

internal/db/isdirty_manager_extra_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package db
66

77
import (
8+
"context"
89
"testing"
910
"time"
1011
)
@@ -34,9 +35,15 @@ func TestToggleAndDeleteMarkDirtyViaManagers(t *testing.T) {
3435
if err := UpdateAccountIsDirty(a1, false); err != nil {
3536
t.Fatalf("clear dirty a1 failed: %v", err)
3637
}
38+
if _, err := ExecRaw(context.Background(), s.bun, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a1); err != nil {
39+
t.Fatalf("clear key_hash a1 failed: %v", err)
40+
}
3741
if err := UpdateAccountIsDirty(a2, false); err != nil {
3842
t.Fatalf("clear dirty a2 failed: %v", err)
3943
}
44+
if _, err := ExecRaw(context.Background(), s.bun, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a2); err != nil {
45+
t.Fatalf("clear key_hash a2 failed: %v", err)
46+
}
4047

4148
// Add non-global key, assign to a1
4249
pk, err := km.AddPublicKeyAndGetModel("ssh-ed25519", "AAAAB3", "t-assign", false, time.Time{})
@@ -51,9 +58,15 @@ func TestToggleAndDeleteMarkDirtyViaManagers(t *testing.T) {
5158
if err := UpdateAccountIsDirty(a1, false); err != nil {
5259
t.Fatalf("clear dirty a1 failed: %v", err)
5360
}
61+
if _, err := ExecRaw(context.Background(), s.bun, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a1); err != nil {
62+
t.Fatalf("clear key_hash a1 failed: %v", err)
63+
}
5464
if err := UpdateAccountIsDirty(a2, false); err != nil {
5565
t.Fatalf("clear dirty a2 failed: %v", err)
5666
}
67+
if _, err := ExecRaw(context.Background(), s.bun, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a2); err != nil {
68+
t.Fatalf("clear key_hash a2 failed: %v", err)
69+
}
5770
if err := km.TogglePublicKeyGlobal(pk.ID); err != nil {
5871
t.Fatalf("TogglePublicKeyGlobal failed: %v", err)
5972
}
@@ -67,6 +80,9 @@ func TestToggleAndDeleteMarkDirtyViaManagers(t *testing.T) {
6780
if err := UpdateAccountIsDirty(a1, false); err != nil {
6881
t.Fatalf("clear dirty a1 failed: %v", err)
6982
}
83+
if _, err := ExecRaw(context.Background(), s.bun, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a1); err != nil {
84+
t.Fatalf("clear key_hash a1 failed: %v", err)
85+
}
7086
if err := UpdateAccountIsDirty(a2, false); err != nil {
7187
t.Fatalf("clear dirty a2 failed: %v", err)
7288
}

internal/db/isdirty_test.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package db
66

77
import (
8+
"context"
89
"testing"
910
"time"
1011
)
@@ -28,9 +29,16 @@ func TestIsDirtyFlags(t *testing.T) {
2829
if err := UpdateAccountIsDirtyBun(bdb, a1, false); err != nil {
2930
t.Fatalf("clear dirty a1 failed: %v", err)
3031
}
32+
// Ensure fingerprint starts empty so subsequent operations deterministically mark dirty
33+
if _, err := ExecRaw(context.Background(), bdb, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a1); err != nil {
34+
t.Fatalf("clear key_hash a1 failed: %v", err)
35+
}
3136
if err := UpdateAccountIsDirtyBun(bdb, a2, false); err != nil {
3237
t.Fatalf("clear dirty a2 failed: %v", err)
3338
}
39+
if _, err := ExecRaw(context.Background(), bdb, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a2); err != nil {
40+
t.Fatalf("clear key_hash a2 failed: %v", err)
41+
}
3442

3543
// Add a public key (non-global) and assign to a1
3644
if err := AddPublicKeyBun(bdb, "ed25519", "AAAAB3", "k1", false, time.Time{}); err != nil {
@@ -57,6 +65,9 @@ func TestIsDirtyFlags(t *testing.T) {
5765
if err := UpdateAccountIsDirtyBun(bdb, a1, false); err != nil {
5866
t.Fatalf("clear dirty a1 failed: %v", err)
5967
}
68+
if _, err := ExecRaw(context.Background(), bdb, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a1); err != nil {
69+
t.Fatalf("clear key_hash a1 failed: %v", err)
70+
}
6071
if err := UnassignKeyFromAccountBun(bdb, pk.ID, a1); err != nil {
6172
t.Fatalf("UnassignKeyFromAccountBun failed: %v", err)
6273
}
@@ -72,6 +83,9 @@ func TestIsDirtyFlags(t *testing.T) {
7283
if err := UpdateAccountIsDirtyBun(bdb, a2, false); err != nil {
7384
t.Fatalf("clear dirty a2 failed: %v", err)
7485
}
86+
if _, err := ExecRaw(context.Background(), bdb, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a2); err != nil {
87+
t.Fatalf("clear key_hash a2 failed: %v", err)
88+
}
7589
if err := AddPublicKeyBun(bdb, "ed25519", "GGGG", "gk", true, time.Time{}); err != nil {
7690
t.Fatalf("AddPublicKeyBun global failed: %v", err)
7791
}
@@ -85,9 +99,15 @@ func TestIsDirtyFlags(t *testing.T) {
8599
if err := UpdateAccountIsDirtyBun(bdb, a1, false); err != nil {
86100
t.Fatalf("clear dirty a1 failed: %v", err)
87101
}
102+
if _, err := ExecRaw(context.Background(), bdb, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a1); err != nil {
103+
t.Fatalf("clear key_hash a1 failed: %v", err)
104+
}
88105
if err := UpdateAccountIsDirtyBun(bdb, a2, false); err != nil {
89106
t.Fatalf("clear dirty a2 failed: %v", err)
90107
}
108+
if _, err := ExecRaw(context.Background(), bdb, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a2); err != nil {
109+
t.Fatalf("clear key_hash a2 failed: %v", err)
110+
}
91111
// Create a non-global key then toggle it to global
92112
if err := AddPublicKeyBun(bdb, "ed25519", "HHHH", "tk", false, time.Time{}); err != nil {
93113
t.Fatalf("AddPublicKeyBun tk failed: %v", err)
@@ -109,6 +129,9 @@ func TestIsDirtyFlags(t *testing.T) {
109129
if err := UpdateAccountIsDirtyBun(bdb, a1, false); err != nil {
110130
t.Fatalf("clear dirty a1 failed: %v", err)
111131
}
132+
if _, err := ExecRaw(context.Background(), bdb, "UPDATE accounts SET key_hash = NULL WHERE id = ?", a1); err != nil {
133+
t.Fatalf("clear key_hash a1 failed: %v", err)
134+
}
112135
if err := UpdateAccountIsDirtyBun(bdb, a2, false); err != nil {
113136
t.Fatalf("clear dirty a2 failed: %v", err)
114137
}

0 commit comments

Comments
 (0)