Fremde Gruppen-CCs in der Kette bleiben voll bedienbar
Der Eintrag am Fuss einer Kette - der Gruppen-CC, aus dem sich jemand herausredesignt hat - liess sich weder ziehen noch bearbeiten. Das war meine Entscheidung mit der Begruendung, es sei der Platz eines anderen. Beim Nacherfassen ist das zu eng: Dort steht erst am Ende fest, welches Redesign wohin fuehrte, und bis dahin muss sich auch einordnen lassen, was einem nicht gehoert. Er ist jetzt ein Kettenglied wie jedes andere - ziehen, bearbeiten, Bezahlart, Verweise, Herausloesen - und traegt nur zusaetzlich das Kennzeichen "war dabei" mit Zeitraum und Besitzer. Wer ihn an den Anfang seiner Kette zieht, macht aus seiner Beitrittsbuchung den Kauf und aus dem Herausredesignen ein Redesign; sein Platz bleibt dabei einer. Dass nur Beteiligte etwas einreihen duerfen, gilt unveraendert.
This commit is contained in:
@@ -758,7 +758,7 @@ describe('Eine Kette mit Vorgeschichte ausserhalb', () => {
|
||||
ctx,
|
||||
);
|
||||
|
||||
return { dargon, eigenes: eigenes.character, weiter: weiter.character };
|
||||
return { dargon, fremd: fremd.character, eigenes: eigenes.character, weiter: weiter.character };
|
||||
}
|
||||
|
||||
it('zählt drei Plätze und drei verbrauchte Pakete', async () => {
|
||||
@@ -796,6 +796,31 @@ describe('Eine Kette mit Vorgeschichte ausserhalb', () => {
|
||||
assert.equal(buchung?.kind, 'REDESIGN_PAID', 'es bleibt ein Redesign');
|
||||
});
|
||||
|
||||
it('lässt auch den fremden Gruppen-CC selbst einreihen', async () => {
|
||||
// Beim Nacherfassen muss sich einordnen lassen, was einem nicht gehört:
|
||||
// Erst am Ende steht fest, welches Redesign wohin führte.
|
||||
const { dargon, fremd, eigenes } = await ausgestiegen();
|
||||
|
||||
await characters.moveInChain(
|
||||
fremd.id,
|
||||
{ lineageId: eigenes.lineageId, afterId: null, forPlayerId: dargon },
|
||||
ctx,
|
||||
);
|
||||
|
||||
const glieder = await kette(dargon, eigenes.lineageId);
|
||||
assert.deepEqual(
|
||||
glieder.map((g) => g.name),
|
||||
['Fremde Gruppe', 'Eigener Strang', 'Und weiter'],
|
||||
'der Gruppen-CC steht jetzt am Anfang der Kette',
|
||||
);
|
||||
verkettungStimmt(glieder);
|
||||
|
||||
// Sein Platz bleibt einer: die Beitrittsbuchung wird zum Kauf, das
|
||||
// Herausredesignen zum Redesign - nicht beides zum Kauf.
|
||||
const stand = await credits.getBalances(dargon);
|
||||
assert.equal(stand.CC, 0, 'drei Pakete, drei Plätze');
|
||||
});
|
||||
|
||||
it('behält den Verweis auf die Herkunft', async () => {
|
||||
const { dargon, eigenes, weiter } = await ausgestiegen();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user