(t *testing.T)
| 158 | } |
| 159 | |
| 160 | func TestUpdateLedger(t *testing.T) { |
| 161 | datasource, mock, err := newTestDataSource() |
| 162 | if err != nil { |
| 163 | t.Fatalf("Error creating test data source: %s", err) |
| 164 | } |
| 165 | |
| 166 | d, err := NewLedgerForge(datasource) |
| 167 | if err != nil { |
| 168 | t.Fatalf("Error creating LedgerForge instance: %s", err) |
| 169 | } |
| 170 | |
| 171 | testID := "ldg_1234567" |
| 172 | originalName := "Original Ledger" |
| 173 | newName := "Updated Ledger" |
| 174 | testTime := time.Now() |
| 175 | |
| 176 | // Mock the GetLedgerByID call first (called by UpdateLedger) |
| 177 | row := sqlmock.NewRows([]string{"ledger_id", "name", "created_at", "meta_data"}). |
| 178 | AddRow(testID, originalName, testTime, `{"key":"value"}`) |
| 179 | |
| 180 | mock.ExpectQuery("SELECT ledger_id, name, created_at, meta_data FROM ledgerforge.ledgers WHERE ledger_id ="). |
| 181 | WithArgs(testID). |
| 182 | WillReturnRows(row) |
| 183 | |
| 184 | // Mock the UPDATE query |
| 185 | mock.ExpectExec("UPDATE ledgerforge.ledgers SET name = \\$1 WHERE ledger_id = \\$2"). |
| 186 | WithArgs(newName, testID). |
| 187 | WillReturnResult(sqlmock.NewResult(1, 1)) |
| 188 | |
| 189 | result, err := d.UpdateLedger(testID, newName) |
| 190 | |
| 191 | assert.NoError(t, err) |
| 192 | assert.NotNil(t, result) |
| 193 | assert.Equal(t, testID, result.LedgerID) |
| 194 | assert.Equal(t, newName, result.Name) |
| 195 | assert.Equal(t, testTime, result.CreatedAt) |
| 196 | |
| 197 | if err := mock.ExpectationsWereMet(); err != nil { |
| 198 | t.Errorf("there were unfulfilled expectations: %s", err) |
| 199 | } |
| 200 | } |
| 201 | |
| 202 | func TestUpdateLedgerNotFound(t *testing.T) { |
| 203 | datasource, mock, err := newTestDataSource() |
nothing calls this directly
no test coverage detected