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

Function TestCreateLedger

api/ledger_api_test.go:100–162  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

98}
99
100func TestCreateLedger(t *testing.T) {
101 router, ledgerforge, err := setupRouter(t)
102 if err != nil {
103 t.Fatalf("Failed to setup router: %v", err)
104 }
105
106 tests := []struct {
107 name string
108 payload model2.CreateLedger
109 expectedCode int
110 wantErr bool
111 }{
112 {
113 name: "Valid Ledger",
114 payload: model2.CreateLedger{
115 Name: gofakeit.Name(),
116 },
117 expectedCode: http.StatusCreated,
118 wantErr: false,
119 },
120 {
121 name: "Empty Name",
122 payload: model2.CreateLedger{
123 Name: "",
124 },
125 expectedCode: http.StatusBadRequest,
126 wantErr: false,
127 },
128 }
129
130 for _, tt := range tests {
131 t.Run(tt.name, func(t *testing.T) {
132 payloadBytes, _ := request.ToJsonReq(&tt.payload)
133 var response model.Ledger
134 testRequest := TestRequest{
135 Payload: payloadBytes,
136 Response: &response,
137 Method: "POST",
138 Route: "/ledgers",
139 Auth: "",
140 Router: router,
141 }
142
143 resp, err := SetUpTestRequest(testRequest)
144 if (err != nil) != tt.wantErr {
145 t.Errorf("SetUpTestRequest() error = %v, wantErr %v", err, tt.wantErr)
146 return
147 }
148 assert.Equal(t, tt.expectedCode, resp.Code)
149
150 if tt.expectedCode == http.StatusCreated {
151 // Verify that the ledger is actually created in the database
152 ledgerFromDB, err := ledgerforge.GetLedgerByID(response.LedgerID)
153 if err != nil {
154 t.Errorf("Failed to retrieve ledger by ID: %v", err)
155 return
156 }
157 assert.Equal(t, response.LedgerID, ledgerFromDB.LedgerID)

Callers

nothing calls this directly

Calls 4

ToJsonReqFunction · 0.92
setupRouterFunction · 0.85
SetUpTestRequestFunction · 0.85
GetLedgerByIDMethod · 0.65

Tested by

no test coverage detected