feat(queens): verdrängte Königin bekommt ihren Endstatus automatisch
Entscheidung Inhaber: Zieht eine neue Königin ein, wird die bisherige „Ersetzt“; Vereinigen und Auflösen eines Volks setzen dessen Königin auf „Ersetzt“, ein Winterverlust auf „Eingegangen“. Nur aus einem verfügbaren Status (ACTIVE, RESERVE, MATED, UNMATED), über updateStatusIn in derselben Transaktion mit Archivdatum und Audit (QueensService.retireIn). Ein von Hand gesetzter Endstatus eines Volks fragt weiter über den Aufräum- Vorschlag nach. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
1 parent
f9e03a1695
commit
81927d629a
10 files changed
+205
-4
No files matched your search
@@ -92,7 +92,10 @@ describe('Queens (e2e)', () => {
|
||||
if (queenId) {
|
||||
// Events go with their deliveries (ON DELETE CASCADE).
|
||||
await prisma.domainEvent.deleteMany({
|
||||
where: { aggregateType: 'Queen', aggregateId: queenId },
|
||||
where: {
|
||||
aggregateType: 'Queen',
|
||||
aggregateId: { in: [queenId, daughterQueenId].filter(Boolean) },
|
||||
},
|
||||
});
|
||||
}
|
||||
if (queenId) {
|
||||
@@ -358,4 +361,22 @@ describe('Queens (e2e)', () => {
|
||||
.send({ deactivatedAt: new Date().toISOString() })
|
||||
.expect(400);
|
||||
});
|
||||
|
||||
it('moves the queen displaced by a new one into the archive as REPLACED', async () => {
|
||||
// queenId sits in secondColonyId since the calendar test.
|
||||
await request(app.getHttpServer())
|
||||
.post(`/api/v1/queens/${daughterQueenId}/assign-colony`)
|
||||
.set('Authorization', `Bearer ${beekeeperToken}`)
|
||||
.send({ colonyId: secondColonyId })
|
||||
.expect(201);
|
||||
|
||||
const displaced = await request(app.getHttpServer())
|
||||
.get(`/api/v1/queens/${queenId}`)
|
||||
.set('Authorization', `Bearer ${beekeeperToken}`)
|
||||
.expect(200);
|
||||
expect(displaced.body).toMatchObject({
|
||||
status: 'REPLACED',
|
||||
deactivatedAt: expect.any(String) as string,
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user