(t *testing.T)
| 127 | } |
| 128 | |
| 129 | func 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 | |
| 167 | func assertNoError(t *testing.T, err error, msg string) { |
| 168 | t.Helper() |
nothing calls this directly
no test coverage detected