feat(api): ship + research endpoints queue tasks with lead + helpers; mission accept is instant and free (#44)
CI / build + unit + e2e (pull_request) Failing after 3m58s
CI / build + unit + e2e (pull_request) Failing after 3m58s
This commit is contained in:
@@ -138,7 +138,7 @@ describe('acceptMission', () => {
|
||||
await expect(acceptMission(db, b.id)).rejects.toMatchObject({ status: 409, message: /One mission at a time/ })
|
||||
})
|
||||
|
||||
it('activates an AVAILABLE contract, costs a turn, writes an event and keeps the board topped up', async () => {
|
||||
it('activates an AVAILABLE contract, spends no turn, writes an event and keeps the board topped up', async () => {
|
||||
const { db } = await freshFile()
|
||||
await getWorldState(db)
|
||||
const [save] = await db.db.select().from(schema.saves).limit(1)
|
||||
@@ -149,11 +149,11 @@ describe('acceptMission', () => {
|
||||
expect(board.find((m) => m.id === a.id)!.state).toBe('ACTIVE')
|
||||
expect(board.filter((m) => m.state === 'AVAILABLE').length).toBeGreaterThanOrEqual(MIN_AVAILABLE) // topped back up
|
||||
const [after] = await db.db.select().from(schema.saves).limit(1)
|
||||
expect(after.turn).toBe(save.turn + 1)
|
||||
expect(after.turn).toBe(save.turn) // free — no turn cost
|
||||
|
||||
const event = (await db.db.select().from(schema.events)).find((e) => e.type === 'mission')!
|
||||
expect(event.message).toContain('Accepted mission')
|
||||
expect(event.turn).toBe(save.turn + 1)
|
||||
expect(event.turn).toBe(save.turn) // stamped at the current turn — accept spends none
|
||||
})
|
||||
})
|
||||
|
||||
@@ -185,7 +185,7 @@ describe('completion', () => {
|
||||
expect(reward.qty).toBe(2)
|
||||
|
||||
const event = (await db.db.select().from(schema.events)).find((e) => e.type === 'mission' && /complete/i.test(e.message))!
|
||||
expect(event.turn).toBe(4) // accept (1) + three scans (2–4); completion is written by the third scan
|
||||
expect(event.turn).toBe(3) // free accept (turn 0) + three scans (1–3); completion is written by the third scan
|
||||
expect(event.message).toContain('Scan 3 bodies')
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user