MCPcopy Index your code
hub / github.com/crawshaw/jsonfile / TestRollbackOnProgramError

Function TestRollbackOnProgramError

jsonfile_test.go:69–95  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

67}
68
69func TestRollbackOnProgramError(t *testing.T) {
70 t.Parallel()
71 type DB struct{ Val int }
72
73 path := filepath.Join(t.TempDir(), "testrollback.json")
74 db, err := New[DB](path)
75 if err != nil {
76 t.Fatal(err)
77 }
78
79 mustWrite(t, db, func(db *DB) { db.Val = 3 })
80 mustWrite(t, db, func(db *DB) { db.Val = 1 })
81
82 var rollbackErr = fmt.Errorf("rollback")
83 if err := db.Write(func(db *DB) error {
84 db.Val = 2
85 return rollbackErr
86 }); err == nil || !errors.Is(err, rollbackErr) {
87 t.Fatalf("Write err=%v, want %v", err, rollbackErr)
88 }
89
90 db.Read(func(db *DB) {
91 if db.Val != 1 {
92 t.Fatalf("Val = %d after rollback, want 1", db.Val)
93 }
94 })
95}
96
97func TestFileError(t *testing.T) {
98 t.Parallel()

Callers

nothing calls this directly

Calls 3

mustWriteFunction · 0.85
WriteMethod · 0.80
ReadMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…