Count hand-valued assets into the wealth figure
A wealth figure that ignores the house is not a wealth figure. Assets without a market feed - a house, a car, a private loan - are now added by hand on the Wealth page with a stated value, a currency and the day the estimate was made; a negative value records a liability. They are registry entities in assets.finance like everything else, join the per-currency totals immediately, and a currency held only in an asset earns its own line.
This commit is contained in:
@@ -514,6 +514,30 @@ func TestNullListsPreserveUntouchedExternalBlockBytes(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// An asset is a registry entity like any other: committed to its own file and
|
||||
// identical after a fresh load, or the wealth it backs vanishes on restart.
|
||||
func TestAssetsSurviveCommitAndReload(t *testing.T) {
|
||||
s := openTestStore(t)
|
||||
d, r := loadTestStore(t, s)
|
||||
d.Assets = []domain.Asset{{ID: "asset_house", Name: "House", Kind: "Real estate", Currency: "EUR", Value: "250000.00", ValuedAt: "2026-09-01"}}
|
||||
commitTestStore(t, s, r, d)
|
||||
if err := s.Close(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fresh, err := Open(s.dir)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer fresh.Close()
|
||||
loaded, _ := loadTestStore(t, fresh)
|
||||
if !reflect.DeepEqual(loaded.Assets, d.Assets) {
|
||||
t.Errorf("assets after reload %+v, want %+v", loaded.Assets, d.Assets)
|
||||
}
|
||||
if raw := readTestFile(t, filepath.Join(s.dir, "assets.finance")); !bytes.Contains(raw, []byte(`asset {`)) {
|
||||
t.Errorf("assets.finance holds no asset block: %s", raw)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOversizedCommitCannotPublishUnreadableRecoveryIntent(t *testing.T) {
|
||||
s := openTestStore(t)
|
||||
original, r := loadTestStore(t, s)
|
||||
|
||||
Reference in New Issue
Block a user