(t *testing.T)
| 890 | } |
| 891 | |
| 892 | func TestGetTransactionByRef_QueryError(t *testing.T) { |
| 893 | db, mock, err := sqlmock.New() |
| 894 | assert.NoError(t, err) |
| 895 | defer func() { _ = db.Close() }() |
| 896 | |
| 897 | ds := Datasource{Conn: db} |
| 898 | ctx := context.Background() |
| 899 | |
| 900 | query := ` |
| 901 | SELECT transaction_id, source, reference, amount, precise_amount, currency, destination, description, status, created_at, meta_data, parent_transaction |
| 902 | FROM ledgerforge.transactions |
| 903 | WHERE reference = $1 |
| 904 | ` |
| 905 | |
| 906 | mock.ExpectQuery(regexp.QuoteMeta(query)). |
| 907 | WithArgs("ref_123"). |
| 908 | WillReturnError(errors.New("database connection error")) |
| 909 | |
| 910 | txn, err := ds.GetTransactionByRef(ctx, "ref_123") |
| 911 | assert.Error(t, err) |
| 912 | assert.Equal(t, "", txn.TransactionID) |
| 913 | apiErr, ok := err.(apierror.APIError) |
| 914 | assert.True(t, ok) |
| 915 | assert.Equal(t, apierror.ErrInternalServer, apiErr.Code) |
| 916 | |
| 917 | err = mock.ExpectationsWereMet() |
| 918 | assert.NoError(t, err) |
| 919 | } |
| 920 | |
| 921 | func TestUpdateTransactionStatus_Success(t *testing.T) { |
| 922 | db, mock, err := sqlmock.New() |
nothing calls this directly
no test coverage detected