Task 3-3: Integration Test - Machine History Log Persistence
Phase: 3 - Testing Priority: Low Depends on: Không có Reference: docs/BountyHunter-Backend/details/feature-receiver-service/SPEC.md
Background
Test JMSReceiverLogMachineListener persist đúng log type vào DB với envType và boothId.
Test scenarios
SAVE_MACHINE_RECEIVED_RESULT
- [ ] Publish với
machine_history_log_type: "SAVE_MACHINE_RECEIVED_RESULT"và validmachineMac - [ ] Verify: 1
MachineReceivedResultLogrecord tạo mới trong DB - [ ] Verify: 1
MachineHistoryLogrecord tạo mới trong DB - [ ] Verify:
envType= current environment (xác nhận field name trên entity) - [ ] Verify:
boothId={groupLabel}-{groupNumber}(resolved từmachineMac)
SAVE_MACHINE_HISTORY_LOG - CONNECTED
- [ ] Publish với
log_type: "CONNECTED" - [ ] Verify:
MachineHistoryLogsaved vớinotechứa "Machine has connected" (hoặc tương đương)
SAVE_MACHINE_HISTORY_LOG - DISCONNECTED
- [ ] Publish với
log_type: "DISCONNECTED" - [ ] Verify:
MachineHistoryLogsaved với đúnglogType - [ ] Verify:
slackNotificationService.notifySlackMachineDisconnect()called (không phảiDisconnectBySystem)
SAVE_MACHINE_HISTORY_LOG - WIN_TURN / LOSE_TURN
- [ ] Publish WIN_TURN event → verify record với
logType=WIN_TURN - [ ] Publish LOSE_TURN event → verify record với
logType=LOSE_TURN
Unknown machineMac
- [ ] Publish với
machineMackhông tồn tại trong DB - [ ] Verify:
boothId = "UNKNOWN"trong saved record - [ ] Verify: Log persisted thành công (không throw exception)
- [ ] Verify: Log WARN
[RECEIVER] Unknown macIp=...(liên quan task-2-2)
noteMap merging
- [ ] Publish với
note_map: {"custom_key": "custom_value"} - [ ] Verify: Saved
noteMapchứa cảcustom_key: "custom_value"VÀenvkey (merged, không overwrite)
Verification / Acceptance Criteria
- [ ]
SAVE_MACHINE_RECEIVED_RESULT: cảMachineReceivedResultLogvàMachineHistoryLogđều được tạo - [ ]
envTypevàboothIdđúng trong tất cả persisted records - [ ] Unknown machineMac:
boothId=UNKNOWN, record vẫn saved, WARN logged - [ ]
noteMapmerging: custom keys vàenvkey cùng tồn tại - [ ] DISCONNECTED: Slack
notifySlackMachineDisconnect()được gọi đúng method (không nhầm vớiDisconnectBySystem)
Files to Modify
- Test files trong
receiver-service/src/test/hoặc integration test module