mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-21 02:04:09 +00:00
The rule that consumers are registered before the queue is started had no test that could fail on the backend it exists for. Everything so far ran on the memory queue, which is the default: queue.Memory's Register starts another consumer goroutine whatever the state, so the wrong order passes there. A suite that only exercises the default reports success for a queue that accepts no consumers at all. CI gets a redis service, and two tests build the queue the way setupQueue does - through config.QueueConfig.Setup, so what is under test is the adapter this repository actually gets, LegacyQueueAdapter included. They skip without GO_ADMIN_TEST_REDIS_ADDR, so a developer with no server still gets a green run. Registering first and starting second delivers the message. Starting first and registering second is refused: no consumer group was created, so Append comes back with storage.ErrNoHandler. Pinning that particular error rather than "some error" is deliberate - the test is about the missing consumer, and a connection failure that happened to error too would otherwise pass for it. Running it corrected something written two commits ago. The claim there was that a late registration loses consumers "with nothing said". Only half of that holds: the registration is silent, because Register returns nothing, but every publish afterwards fails loudly - ErrNoHandler, logged at error level by both call sites in common/middleware - while the log rows are never written. The symptom is missing rows plus a lot of noise, not a quiet nothing. That commit's message and the contract doc both say so now.