MCPcopy Create free account
hub / github.com/daodst/chat / TestShouldReturnErrorIfRowsScanReturnsError

Function TestShouldReturnErrorIfRowsScanReturnsError

internal/sqlutil/sqlutil_test.go:129–165  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

127}
128
129func TestShouldReturnErrorIfRowsScanReturnsError(t *testing.T) {
130 db, mock, err := sqlmock.New()
131 assertNoError(t, err, "Failed to make DB")
132 limit := uint(4)
133
134 // adding a string ID should result in rows.Scan returning an error
135 r := mock.NewRows([]string{"id"}).
136 AddRow("hej").
137 AddRow(2).
138 AddRow(3)
139
140 mock.ExpectQuery(`SELECT id WHERE id IN \(\$1, \$2, \$3\)`).WillReturnRows(r)
141 // nolint:goconst
142 q := "SELECT id WHERE id IN ($1)"
143 v := []int{-1, -2, 3}
144 iKeyIDs := make([]interface{}, len(v))
145 for i, d := range v {
146 iKeyIDs[i] = d
147 }
148
149 ctx := context.Background()
150 var result = make([]uint, 0)
151 err = RunLimitedVariablesQuery(ctx, q, db, iKeyIDs, limit, func(rows *sql.Rows) error {
152 for rows.Next() {
153 var id uint
154 err = rows.Scan(&id)
155 if err != nil {
156 return err
157 }
158 result = append(result, id)
159 }
160 return nil
161 })
162 if err == nil {
163 t.Fatalf("Call did not return an error")
164 }
165}
166
167func assertNoError(t *testing.T, err error, msg string) {
168 t.Helper()

Callers

nothing calls this directly

Calls 2

assertNoErrorFunction · 0.85
RunLimitedVariablesQueryFunction · 0.85

Tested by

no test coverage detected