MCPcopy Create free account
hub / github.com/devaccuracy/ledgerforge / TestUpdateLedger

Function TestUpdateLedger

ledger_test.go:160–200  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

158}
159
160func 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
202func TestUpdateLedgerNotFound(t *testing.T) {
203 datasource, mock, err := newTestDataSource()

Callers

nothing calls this directly

Calls 3

UpdateLedgerMethod · 0.95
newTestDataSourceFunction · 0.85
NewLedgerForgeFunction · 0.85

Tested by

no test coverage detected