(t *testing.T)
| 257 | } |
| 258 | |
| 259 | func TestUpdateLedger_Success(t *testing.T) { |
| 260 | db, mock, err := sqlmock.New() |
| 261 | assert.NoError(t, err) |
| 262 | defer func() { _ = db.Close() }() |
| 263 | |
| 264 | ds := Datasource{Conn: db} |
| 265 | |
| 266 | metaData := map[string]interface{}{"key": "value"} |
| 267 | metaDataJSON, err := json.Marshal(metaData) |
| 268 | assert.NoError(t, err) |
| 269 | |
| 270 | mock.ExpectQuery("SELECT ledger_id, name, created_at, meta_data FROM ledgerforge.ledgers WHERE ledger_id = ?"). |
| 271 | WithArgs("ldg1"). |
| 272 | WillReturnRows(sqlmock.NewRows([]string{"ledger_id", "name", "created_at", "meta_data"}). |
| 273 | AddRow("ldg1", "Old Name", time.Now(), metaDataJSON)) |
| 274 | |
| 275 | mock.ExpectExec("UPDATE ledgerforge.ledgers SET name"). |
| 276 | WithArgs("New Name", "ldg1"). |
| 277 | WillReturnResult(sqlmock.NewResult(0, 1)) |
| 278 | |
| 279 | ledger, err := ds.UpdateLedger("ldg1", "New Name") |
| 280 | assert.NoError(t, err) |
| 281 | assert.Equal(t, "New Name", ledger.Name) |
| 282 | assert.Equal(t, "ldg1", ledger.LedgerID) |
| 283 | |
| 284 | err = mock.ExpectationsWereMet() |
| 285 | assert.NoError(t, err) |
| 286 | } |
| 287 | |
| 288 | func TestUpdateLedger_NotFound(t *testing.T) { |
| 289 | db, mock, err := sqlmock.New() |
nothing calls this directly
no test coverage detected