...
1
2
3
4
5
6
7
8
9
10
11
12
13 package kt
14
15 import (
16 "net/http"
17
18 kivik "github.com/go-kivik/kivik/v4"
19 )
20
21
22 func (c *Context) CheckError(err error) (match bool, success bool) {
23 c.T.Helper()
24 status := c.Int("status")
25 if status == 0 && err == nil {
26 return true, true
27 }
28 switch actualStatus := kivik.HTTPStatus(err); actualStatus {
29 case status:
30
31 return true, status == 0
32 case 0:
33 c.Errorf("Expected failure %d/%s, got success", status, http.StatusText(status))
34 return false, true
35 default:
36 if status == 0 {
37 c.Errorf("Unexpected failure: %d/%s", kivik.HTTPStatus(err), err)
38 return false, false
39 }
40 c.Errorf("Unexpected failure state.\nExpected: %d/%s\n Actual: %d/%s", status, http.StatusText(status), actualStatus, err)
41 return false, false
42 }
43 }
44
45
46
47 func (c *Context) IsExpected(err error) bool {
48 c.T.Helper()
49 m, _ := c.CheckError(err)
50 return m
51 }
52
53
54
55 func (c *Context) IsSuccess(err error) bool {
56 c.T.Helper()
57 _, s := c.CheckError(err)
58 return s
59 }
60
61
62
63 func (c *Context) IsExpectedSuccess(err error) bool {
64 c.T.Helper()
65 m, s := c.CheckError(err)
66 return m && s
67 }
68
View as plain text