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

Function TestCreateLedger_UniqueViolation

database/ledger_test.go:60–86  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

58}
59
60func TestCreateLedger_UniqueViolation(t *testing.T) {
61 db, mock, err := sqlmock.New()
62 assert.NoError(t, err)
63 defer func() { _ = db.Close() }()
64
65 ds := Datasource{Conn: db}
66
67 ledger := model.Ledger{
68 Name: "Test Ledger",
69 MetaData: map[string]interface{}{
70 "key": "value",
71 },
72 }
73
74 metaDataJSON, err := json.Marshal(ledger.MetaData)
75 assert.NoError(t, err)
76
77 mock.ExpectExec("INSERT INTO ledgerforge.ledgers").
78 WithArgs(metaDataJSON, ledger.Name, sqlmock.AnyArg()).
79 WillReturnError(&pq.Error{Code: "23505", Message: "unique_violation"})
80
81 _, err = ds.CreateLedger(ledger)
82 assert.Error(t, err)
83 apiErr, ok := err.(apierror.APIError)
84 assert.True(t, ok)
85 assert.Equal(t, apierror.ErrConflict, apiErr.Code)
86}
87
88func TestGetAllLedgers_Success(t *testing.T) {
89 db, mock, err := sqlmock.New()

Callers

nothing calls this directly

Calls 3

CreateLedgerMethod · 0.95
CloseMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected