Jedes Glied einer Liste kostet, auch in einem Gruppen-CC
Bisher zahlte nur, wer neu einstieg: wer in einer Kette mitgezogen wurde oder einen Gruppen-CC mitbenutzte, stand darin ohne eigene Buchung. Damit ging die Rechnung nicht auf - verbrauchte Redesigns sind alle Glieder aller Listen minus die Anzahl der Listen, und das gilt fuer jeden Nutzer einzeln. Jetzt bucht jedes Glied: das unterste einen Platz, jedes weitere ein Redesign. Wo eine Buchung fehlt, traegt der Abgleich sie nach, und das Redesign eines Gruppen-CCs kostet jeden Nutzer sein eigenes. Am Pfeil stehen alle offenen Buchungen eines Eintrags, nicht nur die juengste - sonst bleibt eine zweite unsichtbar.
This commit is contained in:
@@ -107,16 +107,20 @@ describe('Nachträglich aufräumen, was längst passiert ist', () => {
|
||||
assert.deepEqual(await mitglieder(alpha), ['Spieler A', 'Spieler B']);
|
||||
});
|
||||
|
||||
it('zieht ihn durch die Kette, ohne ein zweites Mal zu buchen', async () => {
|
||||
it('zieht ihn durch die Kette und bucht jedes Glied einzeln', async () => {
|
||||
// Für ihn ist jedes Glied ein eigener Eintrag in seiner Liste: der
|
||||
// unterste kostet den Platz, jedes weitere ein Redesign.
|
||||
const vorher = await credits.getBalances(a);
|
||||
|
||||
const ergebnis = await characters.addMemberToChain(beta, a, {}, ctx);
|
||||
assert.equal(ergebnis.added, 2, 'Beta und Gamma kommen dazu');
|
||||
|
||||
assert.deepEqual(
|
||||
await credits.getBalances(a),
|
||||
vorher,
|
||||
'sein Platz wurde einmal bezahlt und ist derselbe geblieben',
|
||||
const danach = await credits.getBalances(a);
|
||||
assert.equal(danach.CC, vorher.CC, 'sein Platz wurde einmal bezahlt');
|
||||
assert.equal(
|
||||
danach.REDESIGN_PAID,
|
||||
vorher.REDESIGN_PAID - 2,
|
||||
'für Beta und Gamma je ein Redesign',
|
||||
);
|
||||
assert.deepEqual(await mitglieder(gamma), ['Spieler A', 'Spieler B']);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user