Skip to content

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à valid machineMac
  • [ ] Verify: 1 MachineReceivedResultLog record tạo mới trong DB
  • [ ] Verify: 1 MachineHistoryLog record 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: MachineHistoryLog saved với note chứa "Machine has connected" (hoặc tương đương)

SAVE_MACHINE_HISTORY_LOG - DISCONNECTED

  • [ ] Publish với log_type: "DISCONNECTED"
  • [ ] Verify: MachineHistoryLog saved với đúng logType
  • [ ] Verify: slackNotificationService.notifySlackMachineDisconnect() called (không phải DisconnectBySystem)

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 machineMac khô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 noteMap chứa cả custom_key: "custom_value"env key (merged, không overwrite)

Verification / Acceptance Criteria

  • [ ] SAVE_MACHINE_RECEIVED_RESULT: cả MachineReceivedResultLogMachineHistoryLog đều được tạo
  • [ ] envTypeboothId đúng trong tất cả persisted records
  • [ ] Unknown machineMac: boothId=UNKNOWN, record vẫn saved, WARN logged
  • [ ] noteMap merging: custom keys và env key cùng tồn tại
  • [ ] DISCONNECTED: Slack notifySlackMachineDisconnect() được gọi đúng method (không nhầm với DisconnectBySystem)

Files to Modify

  • Test files trong receiver-service/src/test/ hoặc integration test module