publish( 'app://model/todo', ['op' => 'upsert', 'id' => '1', 'data' => ['done' => true], 'version' => 7], ); self::assertSame('urn:uuid:test', $id); self::assertInstanceOf(Update::class, $hub->captured); self::assertSame(['app://model/todo'], $hub->captured->getTopics()); self::assertJsonStringEqualsJsonString( '{"op":"upsert","id":"1","data":{"done":true},"version":7}', $hub->captured->getData(), ); self::assertFalse($hub->captured->isPrivate()); } public function testPrivateFlagIsForwarded(): void { $hub = new HubSpy(); (new Publisher($hub))->publish('app://event/internal', ['data' => 'x'], private: true); self::assertNotNull($hub->captured); self::assertTrue($hub->captured->isPrivate()); } }