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

Function TestUpdateMetadata

metadata_test.go:43–127  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

41}
42
43func TestUpdateMetadata(t *testing.T) {
44 ctx := context.Background()
45
46 t.Run("Update Ledger Metadata", func(t *testing.T) {
47 mockDS := new(mocks.MockDataSource)
48 ledgerforge := &LedgerForge{datasource: mockDS}
49
50 existingMetadata := map[string]interface{}{"existing": "value"}
51 ledger := &model.Ledger{MetaData: existingMetadata}
52 mockDS.On("GetLedgerByID", "ldg_123").Return(ledger, nil)
53 mockDS.On("UpdateLedgerMetadata", "ldg_123", mock.Anything).Return(nil)
54
55 newMetadata := map[string]interface{}{"new": "value"}
56 result, err := ledgerforge.UpdateMetadata(ctx, "ldg_123", newMetadata)
57
58 assert.NoError(t, err)
59 assert.Contains(t, result, "existing")
60 assert.Contains(t, result, "new")
61 mockDS.AssertExpectations(t)
62 })
63
64 t.Run("Update Transaction Metadata", func(t *testing.T) {
65 mockDS := new(mocks.MockDataSource)
66 ledgerforge := &LedgerForge{datasource: mockDS}
67
68 // Set up expectations for transaction exists check
69 mockDS.On("TransactionExistsByIDOrParentID", ctx, "txn_123").Return(true, nil)
70
71 // Set up expectation for metadata update
72 newMetadata := map[string]interface{}{"new": "value"}
73 mockDS.On("UpdateTransactionMetadata", ctx, "txn_123", newMetadata).Return(nil)
74
75 result, err := ledgerforge.UpdateMetadata(ctx, "txn_123", newMetadata)
76
77 assert.NoError(t, err)
78 assert.Equal(t, newMetadata, result) // Should return just the new metadata
79 mockDS.AssertExpectations(t)
80 })
81
82 t.Run("Update Balance Metadata", func(t *testing.T) {
83 mockDS := new(mocks.MockDataSource)
84 ledgerforge := &LedgerForge{datasource: mockDS}
85
86 existingMetadata := map[string]interface{}{"existing": "value"}
87 balance := &model.Balance{MetaData: existingMetadata}
88
89 mockDS.On("GetBalanceByID", "bln_123", mock.Anything, false).Return(balance, nil)
90 mockDS.On("UpdateBalanceMetadata", mock.Anything, "bln_123", mock.Anything).Return(nil)
91
92 newMetadata := map[string]interface{}{"new": "value"}
93 result, err := ledgerforge.UpdateMetadata(ctx, "bln_123", newMetadata)
94
95 assert.NoError(t, err)
96 assert.Contains(t, result, "existing")
97 assert.Contains(t, result, "new")
98 mockDS.AssertExpectations(t)
99 })
100

Callers

nothing calls this directly

Calls 2

UpdateMetadataMethod · 0.95
ErrorMethod · 0.45

Tested by

no test coverage detected