mirror of
https://tangled.org/evan.jarrett.net/at-container-registry
synced 2026-08-29 04:06:58 +00:00
29 lines
870 B
Go
29 lines
870 B
Go
package db
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
)
|
|
|
|
func TestIsPoisonedTxErr(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
err error
|
|
want bool
|
|
}{
|
|
{"nil", nil, false},
|
|
{"unrelated", errors.New("disk full"), false},
|
|
{"bunny timeout", errors.New("Remote SQlite failure: `2:0:Transaction timed-out`"), true},
|
|
{"no active tx", errors.New("Remote SQlite failure: `3:1:cannot commit - no transaction is active`"), true},
|
|
{"init state", errors.New("error code = 2: Error executing statement: connection has reached an invalid state, started with Init"), true},
|
|
{"just invalid state", errors.New("generic failure: invalid state, started with Query"), true},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
if got := IsPoisonedTxErr(c.err); got != c.want {
|
|
t.Errorf("IsPoisonedTxErr(%v) = %v, want %v", c.err, got, c.want)
|
|
}
|
|
})
|
|
}
|
|
}
|