feat(renown): add the Renown power-curve table and reputation-rank resolver

This commit is contained in:
Bastian Wagner
2026-08-21 08:42:29 +02:00
parent e14f6dcbce
commit 88b98aa605
4 changed files with 116 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
import { resolveReputationRank } from './reputation-rank';
describe('resolveReputationRank', () => {
it('resolves 0 reputation to Stranger with a next threshold of 100', () => {
expect(resolveReputationRank(0)).toEqual({
key: 'STRANGER',
label: 'Fremder',
threshold: 0,
nextThreshold: 100,
});
});
it('resolves exactly at a threshold to that rank, not the one below', () => {
expect(resolveReputationRank(100).key).toBe('TOLERATED');
expect(resolveReputationRank(99).key).toBe('STRANGER');
});
it('resolves every documented threshold to its exact rank', () => {
expect(resolveReputationRank(250).key).toBe('KNOWN');
expect(resolveReputationRank(500).key).toBe('RECOGNIZED');
expect(resolveReputationRank(800).key).toBe('TRUSTED');
expect(resolveReputationRank(1200).key).toBe('ESTEEMED');
});
it('has no next threshold once at the top rank', () => {
expect(resolveReputationRank(1200).nextThreshold).toBeNull();
expect(resolveReputationRank(50_000).nextThreshold).toBeNull();
});
it('reports the correct nextThreshold mid-range', () => {
expect(resolveReputationRank(300).nextThreshold).toBe(500);
});
});