Update lease service errors

Ensure delete returns a typed error on not found

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
This commit is contained in:
Derek McGowan
2018-07-24 14:49:23 -07:00
parent 94e132fd07
commit b760cee65a
4 changed files with 29 additions and 17 deletions

View File

@@ -30,15 +30,17 @@ func TestLeases(t *testing.T) {
defer cancel()
testCases := []struct {
ID string
Cause error
ID string
CreateErr error
DeleteErr error
}{
{
ID: "tx1",
},
{
ID: "tx1",
Cause: errdefs.ErrAlreadyExists,
ID: "tx1",
CreateErr: errdefs.ErrAlreadyExists,
DeleteErr: errdefs.ErrNotFound,
},
{
ID: "tx2",
@@ -51,7 +53,7 @@ func TestLeases(t *testing.T) {
if err := db.Update(func(tx *bolt.Tx) error {
lease, err := NewLeaseManager(tx).Create(ctx, leases.WithID(tc.ID))
if err != nil {
if tc.Cause != nil && errors.Cause(err) == tc.Cause {
if tc.CreateErr != nil && errors.Cause(err) == tc.CreateErr {
return nil
}
return err
@@ -91,7 +93,10 @@ func TestLeases(t *testing.T) {
ID: tc.ID,
})
}); err != nil {
t.Fatal(err)
if tc.DeleteErr == nil && errors.Cause(err) != tc.DeleteErr {
t.Fatal(err)
}
}
}
@@ -248,12 +253,14 @@ func TestLeasesList(t *testing.T) {
t.Fatal(err)
}
// try it again, get nil
// try it again, get not found
if err := db.Update(func(tx *bolt.Tx) error {
lm := NewLeaseManager(tx)
return lm.Delete(ctx, lease)
}); err != nil {
t.Fatalf("unexpected error %v", err)
}); err == nil {
t.Fatalf("expected error deleting non-existent lease")
} else if !errdefs.IsNotFound(err) {
t.Fatalf("unexpected error: %s", err)
}
}
}