feat(e2e-react): Add standalone offline mock server with REST and DDP emulation
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 20/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 技術スタック
- javascript, node.js, react
調査の方向性
Start with packages/e2e-react/src/App.tsx to trace the development server configuration, then inspect the package’s REST calls and Meteor/DDP WebSocket handling. The acceptance criteria require mock responses for the listed endpoints, DDP handshake and message broadcasts, and session persistence in localStorage; verify that yarn dev opens a functional offline chat. A linked open pull request and the implementation note indicate work is already underway.
索引モデルが issue の本文から書いたものです。
説明
Problem Statement
In packages/e2e-react/src/App.tsx, the default development configuration points to https://demo.qa.rocket.chat/. This server is defunct (expired SSL certificate / 404 response), causing the browser to abort requests with Failed to fetch and displaying a connection error toast on login.
Additionally, testing UI components currently requires spinning up a heavy local Docker container with MongoDB and Rocket.Chat, which introduces a high barrier to entry for new contributors and leads to flaky E2E testing.
As an EmbeddedChat developer
I need to:
Run a standalone mock server inside the e2e-react package that intercepts REST authentication and emulates the real-time Meteor/DDP WebSocket protocol.
So That:
I can develop, interact with, and test EmbeddedChat features (login, message sending, room history, and session persistence) instantly and offline without requiring a live Rocket.Chat backend or Docker setup.
Acceptance Criteria
- Intercept REST API endpoints (
/api/v1/login,rooms.info,channels.messages,chat.sendMessage) with valid mock payloads. - Emulate the Meteor/DDP WebSocket handshake (
connect➔connected,sub➔ready) and message event broadcasting. - Persist mock authentication sessions in
localStorageacross page reloads. - Allow
yarn devto run out-of-the-box in a functional chat playground without network errors.
Demo / Screen Recording
https://github.com/user-attachments/assets/a4067913-0756-4f0a-bc43-201b0d347f2c
Implementation Note
I am working on the solution implementing both the REST and WebSocket/DDP interception layers and will link the pull request immediately.
- 主要言語
- JavaScript
- スター
- 170
- フォーク
- 397
- 平均マージ
- 12日 14時間
- マージ済み PR(30日)
- 6
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
RocketChat/EmbeddedChat のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
RocketChat/EmbeddedChat#1429 ·
メンテナーはふだん 1 日以内に返信
-
docs: README says Node 22 is required, but .nvmrc pins v24 and preinstall enforces it対応中かも @Veerpratapgupta が 29 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
RocketChat/EmbeddedChat#1377 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
test: isMessageSequential in layout_editor has no coverage再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
RocketChat/EmbeddedChat#1373 ·
メンテナーはふだん 1 日以内に返信
-
Permissions change-detection in useFetchChatData is dead — applyPermissions re-runs on every call対応中かも @yash113gadia が 166 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
RocketChat/EmbeddedChat#1317 ·
メンテナーはふだん 1 日以内に返信
-
Only the last emoji shortname in a message is converted to unicode対応中かも @yash113gadia が 166 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
RocketChat/EmbeddedChat#1315 ·
メンテナーはふだん 1 日以内に返信
RocketChat/EmbeddedChat の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
webtorrent/webtorrent#3131 ·
-
good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
trustjonathan/STUDY-HUB#15 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100