MCPcopy Index your code
hub / github.com/devaccuracy/ledgerforge / TestRevokeAPIKey_DatabaseError

Function TestRevokeAPIKey_DatabaseError

database/api_key_test.go:206–236  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

204}
205
206func TestRevokeAPIKey_DatabaseError(t *testing.T) {
207 db, mock, err := sqlmock.New()
208 assert.NoError(t, err)
209 defer func() { _ = db.Close() }()
210
211 ds := Datasource{Conn: db}
212
213 apiKeyID := "api_key_123"
214 ownerID := "owner123"
215 hashedKey := "some-hashed-key-value"
216
217 // Expect the SELECT query first (succeeds)
218 selectRow := sqlmock.NewRows([]string{"key"}).
219 AddRow(hashedKey)
220
221 mock.ExpectQuery("SELECT.*FROM ledgerforge.api_keys.*WHERE api_key_id.*AND owner_id.*").
222 WithArgs(apiKeyID, ownerID).
223 WillReturnRows(selectRow)
224
225 // Expect the UPDATE query (fails with database error)
226 mock.ExpectExec("UPDATE ledgerforge.api_keys.*SET is_revoked.*WHERE api_key_id.*AND owner_id.*").
227 WithArgs(sqlmock.AnyArg(), apiKeyID, ownerID).
228 WillReturnError(sql.ErrConnDone)
229
230 err = ds.RevokeAPIKey(context.Background(), apiKeyID, ownerID)
231 assert.Error(t, err)
232 assert.Equal(t, sql.ErrConnDone, err)
233
234 err = mock.ExpectationsWereMet()
235 assert.NoError(t, err)
236}
237
238func TestUpdateLastUsed_Success(t *testing.T) {
239 db, mock, err := sqlmock.New()

Callers

nothing calls this directly

Calls 3

RevokeAPIKeyMethod · 0.95
CloseMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected