Allow comment_removed without post_id

The schema lists post_id as required, but the official TypeScript
client types it as `string | null`. A null would fail with a TypeError
and, unlike an unknown update type, TypeError is not caught while
parsing updates.
This commit is contained in:
Timofey
2026-09-28 00:28:49 +05:00
parent d9ec52fc53
commit dd00b4c5e6
2 changed files with 18 additions and 2 deletions
+2 -2
View File
@@ -17,14 +17,14 @@ final readonly class CommentRemovedUpdate extends AbstractUpdate
* @param string $messageId Identifier of the removed comment.
* @param int $chatId Chat identifier where the comment has been deleted.
* @param int $userId User who deleted this comment.
* @param string $postId Identifier of the commented post.
* @param string|null $postId Identifier of the commented post.
*/
public function __construct(
int $timestamp,
public string $messageId,
public int $chatId,
public int $userId,
public string $postId,
public ?string $postId,
) {
parent::__construct(UpdateType::CommentRemoved, $timestamp);
}
@@ -31,4 +31,20 @@ final class CommentRemovedUpdateTest extends TestCase
$this->assertSame(42, $update->userId);
$this->assertSame('mid.post', $update->postId);
}
#[Test]
public function postIdMayBeNull(): void
{
// The official TypeScript client types post_id as `string | null`
$update = CommentRemovedUpdate::fromArray([
'update_type' => UpdateType::CommentRemoved->value,
'timestamp' => 1678886400000,
'message_id' => 'mid.comment',
'chat_id' => -100,
'user_id' => 42,
'post_id' => null,
]);
$this->assertNull($update->postId);
}
}