(t *testing.T)
| 1793 | } |
| 1794 | |
| 1795 | func TestGetBalanceAtTime_BalanceNotFound(t *testing.T) { |
| 1796 | db, mock, err := sqlmock.New() |
| 1797 | assert.NoError(t, err) |
| 1798 | defer func() { _ = db.Close() }() |
| 1799 | |
| 1800 | ds := Datasource{Conn: db} |
| 1801 | ctx := context.Background() |
| 1802 | |
| 1803 | mock.ExpectBegin() |
| 1804 | |
| 1805 | query := `SELECT currency, created_at FROM ledgerforge.balances WHERE balance_id = $1` |
| 1806 | mock.ExpectQuery(regexp.QuoteMeta(query)). |
| 1807 | WithArgs("bln_nonexistent"). |
| 1808 | WillReturnError(sql.ErrNoRows) |
| 1809 | |
| 1810 | mock.ExpectRollback() |
| 1811 | |
| 1812 | balance, err := ds.GetBalanceAtTime(ctx, "bln_nonexistent", time.Now().Add(-1*time.Hour), false) |
| 1813 | assert.Error(t, err) |
| 1814 | assert.Nil(t, balance) |
| 1815 | apiErr, ok := err.(apierror.APIError) |
| 1816 | assert.True(t, ok) |
| 1817 | assert.Equal(t, apierror.ErrNotFound, apiErr.Code) |
| 1818 | |
| 1819 | err = mock.ExpectationsWereMet() |
| 1820 | assert.NoError(t, err) |
| 1821 | } |
| 1822 | |
| 1823 | func TestTakeBalanceSnapshots_Success(t *testing.T) { |
| 1824 | db, mock, err := sqlmock.New() |
nothing calls this directly
no test coverage detected