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

Function TestCreateMonitor_UniqueViolation

database/balance_test.go:1156–1187  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1154}
1155
1156func TestCreateMonitor_UniqueViolation(t *testing.T) {
1157 db, mock, err := sqlmock.New()
1158 assert.NoError(t, err)
1159 defer func() { _ = db.Close() }()
1160
1161 ds := Datasource{Conn: db}
1162
1163 monitor := model.BalanceMonitor{
1164 BalanceID: "bln_123",
1165 Condition: model.AlertCondition{
1166 Field: "balance",
1167 Operator: "<",
1168 Value: 1000,
1169 },
1170 }
1171
1172 mock.ExpectExec(regexp.QuoteMeta(`
1173 INSERT INTO ledgerforge.balance_monitors (monitor_id, balance_id, field, operator, value, precision, precise_value, description, call_back_url, created_at)
1174 VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
1175 `)).
1176 WithArgs(sqlmock.AnyArg(), monitor.BalanceID, monitor.Condition.Field, monitor.Condition.Operator, monitor.Condition.Value, sqlmock.AnyArg(), sqlmock.AnyArg(), sqlmock.AnyArg(), sqlmock.AnyArg(), sqlmock.AnyArg()).
1177 WillReturnError(&pq.Error{Code: "23505", Message: "unique_violation"})
1178
1179 _, err = ds.CreateMonitor(monitor)
1180 assert.Error(t, err)
1181 apiErr, ok := err.(apierror.APIError)
1182 assert.True(t, ok)
1183 assert.Equal(t, apierror.ErrConflict, apiErr.Code)
1184
1185 err = mock.ExpectationsWereMet()
1186 assert.NoError(t, err)
1187}
1188
1189func TestCreateMonitor_ForeignKeyViolation(t *testing.T) {
1190 db, mock, err := sqlmock.New()

Callers

nothing calls this directly

Calls 3

CreateMonitorMethod · 0.95
CloseMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected