From 6448605a726f4c17065584eb7157fef68b97d93d Mon Sep 17 00:00:00 2001 From: Bastian Wagner Date: Thu, 20 Aug 2026 09:13:04 +0200 Subject: [PATCH] feat(characters): expose persisted silver on the character endpoint Co-Authored-By: Claude Opus 5 --- .../src/characters/characters.service.spec.ts | 27 +++++++++++++++++++ apps/api/src/characters/characters.service.ts | 1 + 2 files changed, 28 insertions(+) diff --git a/apps/api/src/characters/characters.service.spec.ts b/apps/api/src/characters/characters.service.spec.ts index 0f27a1f..63940ed 100644 --- a/apps/api/src/characters/characters.service.spec.ts +++ b/apps/api/src/characters/characters.service.spec.ts @@ -13,6 +13,7 @@ describe('CharactersService', () => { name: 'Aric Duskwalker', level: 1, experience: 0, + silver: 0, currentHp: 100, baseHp: 100, baseAttack: 6, @@ -30,6 +31,7 @@ describe('CharactersService', () => { name: 'Aric Duskwalker', level: 1, experience: 0, + silver: 0, currentHp: 100, maxHp: 100, attack: 6, @@ -45,6 +47,31 @@ describe('CharactersService', () => { }); }); + it('exposes the persisted silver so the HUD never has to guess', async () => { + const repository = { + findOne: jest.fn().mockResolvedValue({ + id: DEMO_CHARACTER_ID, + name: 'Aric Duskwalker', + level: 1, + experience: 24, + silver: 18, + currentHp: 100, + baseHp: 100, + baseAttack: 6, + currentLocation: { + id: SOUTH_GATE_ID, + key: 'south-gate', + name: 'Südtor von Graufurt', + }, + }), + } as unknown as Repository; + const service = new CharactersService(repository); + + await expect(service.getDemoCharacter()).resolves.toEqual( + expect.objectContaining({ experience: 24, silver: 18 }), + ); + }); + it('reports a missing demo seed as not found', async () => { const repository = { findOne: jest.fn().mockResolvedValue(null), diff --git a/apps/api/src/characters/characters.service.ts b/apps/api/src/characters/characters.service.ts index 2d76ccc..ce5a099 100644 --- a/apps/api/src/characters/characters.service.ts +++ b/apps/api/src/characters/characters.service.ts @@ -26,6 +26,7 @@ export class CharactersService { name: character.name, level: character.level, experience: character.experience, + silver: character.silver, currentHp: character.currentHp, maxHp: character.baseHp, attack: character.baseAttack,