chore(codebase): formatting with ruff and eslint/prettier

This commit is contained in:
Ivan
2026-04-09 14:31:58 -05:00
parent 3b3d59f94e
commit fa3b1ff589
13 changed files with 128 additions and 127 deletions
+10 -10
View File
@@ -194,17 +194,17 @@ Use the dedicated docs:
MeshChatX supports both CLI args and env vars.
| Argument | Environment Variable | Default | Description |
| -------------------------- | ---------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Web server bind address |
| `--port` | `MESHCHAT_PORT` | `8000` | Web server port |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | Disable HTTPS |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (none) | PEM certificate and private key paths; both must be set together. Overrides auto-generated certs under the identity `ssl/` directory. |
| Argument | Environment Variable | Default | Description |
| -------------------------- | ---------------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Web server bind address |
| `--port` | `MESHCHAT_PORT` | `8000` | Web server port |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | Disable HTTPS |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (none) | PEM certificate and private key paths; both must be set together. Overrides auto-generated certs under the identity `ssl/` directory. |
| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (none) | Reticulum (RNS) stack log level: `none`, `critical`, `error`, `warning`, `notice`, `verbose`, `debug`, `extreme`, or a numeric level. CLI overrides env when both are set. |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | Do not auto-launch browser |
| `--auth` | `MESHCHAT_AUTH` | `false` | Enable basic auth |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Data directory |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | auto/bundled | Frontend files directory (needed for source installs without bundled assets) |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | Do not auto-launch browser |
| `--auth` | `MESHCHAT_AUTH` | `false` | Enable basic auth |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Data directory |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | auto/bundled | Frontend files directory (needed for source installs without bundled assets) |
## Branches
+18 -18
View File
@@ -190,17 +190,17 @@ task dist:fe:rpm
## Konfiguration
| Argument | Umgebungsvariable | Standard | Beschreibung |
| -------------------------- | ---------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Webserver-Bind-Adresse |
| `--port` | `MESHCHAT_PORT` | `8000` | Webserver-Port |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | HTTPS deaktivieren |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (keine) | PEM-Zertifikat und Schluessel; beide setzen. Ueberschreibt automatisch erzeugte Zertifikate unter der Identitaet im Verzeichnis `ssl/`. |
| Argument | Umgebungsvariable | Standard | Beschreibung |
| -------------------------- | ---------------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Webserver-Bind-Adresse |
| `--port` | `MESHCHAT_PORT` | `8000` | Webserver-Port |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | HTTPS deaktivieren |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (keine) | PEM-Zertifikat und Schluessel; beide setzen. Ueberschreibt automatisch erzeugte Zertifikate unter der Identitaet im Verzeichnis `ssl/`. |
| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (keine) | Reticulum (RNS) Log-Level: `none`, `critical`, `error`, `warning`, `notice`, `verbose`, `debug`, `extreme` oder numerisch. CLI ueberschreibt die Umgebungsvariable, wenn beide gesetzt sind. |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | Browser nicht automatisch oeffnen |
| `--auth` | `MESHCHAT_AUTH` | `false` | Basis-Authentifizierung aktivieren |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Datenverzeichnis |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | auto/bundled | Frontend-Verzeichnis (fuer Installationen ohne gebundelte Assets) |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | Browser nicht automatisch oeffnen |
| `--auth` | `MESHCHAT_AUTH` | `false` | Basis-Authentifizierung aktivieren |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Datenverzeichnis |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | auto/bundled | Frontend-Verzeichnis (fuer Installationen ohne gebundelte Assets) |
## Branches
@@ -222,14 +222,14 @@ task build:all
`Makefile`-Kurzformen:
| Befehl | Beschreibung |
| -------------- | ------------------------------------------------- |
| `make install` | pnpm- und Poetry-Abhaengigkeiten installieren |
| `make run` | MeshChatX ueber Poetry starten |
| `make build` | Frontend bauen |
| `make lint` | eslint und ruff ausfuehren |
| `make test` | Frontend- und Backend-Tests |
| `make clean` | Build-Artefakte und node_modules entfernen |
| Befehl | Beschreibung |
| -------------- | --------------------------------------------- |
| `make install` | pnpm- und Poetry-Abhaengigkeiten installieren |
| `make run` | MeshChatX ueber Poetry starten |
| `make build` | Frontend bauen |
| `make lint` | eslint und ruff ausfuehren |
| `make test` | Frontend- und Backend-Tests |
| `make clean` | Build-Artefakte und node_modules entfernen |
## Versionierung
+18 -18
View File
@@ -190,17 +190,17 @@ task dist:fe:rpm
## Configurazione
| Argomento | Variabile d'ambiente | Predefinito | Descrizione |
| -------------------------- | ---------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Indirizzo di bind del web server |
| `--port` | `MESHCHAT_PORT` | `8000` | Porta del web server |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | Disattiva HTTPS |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (nessuno) | Percorsi PEM certificato e chiave; impostare entrambi. Sostituisce i certificati auto-generati sotto l'identita nella directory `ssl/`. |
| Argomento | Variabile d'ambiente | Predefinito | Descrizione |
| -------------------------- | ---------------------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Indirizzo di bind del web server |
| `--port` | `MESHCHAT_PORT` | `8000` | Porta del web server |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | Disattiva HTTPS |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (nessuno) | Percorsi PEM certificato e chiave; impostare entrambi. Sostituisce i certificati auto-generati sotto l'identita nella directory `ssl/`. |
| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (nessuno) | Livello di log Reticulum (RNS): `none`, `critical`, `error`, `warning`, `notice`, `verbose`, `debug`, `extreme` o numerico. La CLI ha priorita sulla variabile d'ambiente se entrambe sono impostate. |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | Non aprire il browser automaticamente |
| `--auth` | `MESHCHAT_AUTH` | `false` | Attiva autenticazione base |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Directory dei dati |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | auto/bundle | Directory dei file frontend (per installazioni senza asset inclusi) |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | Non aprire il browser automaticamente |
| `--auth` | `MESHCHAT_AUTH` | `false` | Attiva autenticazione base |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Directory dei dati |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | auto/bundle | Directory dei file frontend (per installazioni senza asset inclusi) |
## Branch
@@ -222,14 +222,14 @@ task build:all
Scorciatoie `Makefile`:
| Comando | Descrizione |
| -------------- | ------------------------------------------------ |
| `make install` | Installa dipendenze pnpm e poetry |
| `make run` | Esegue MeshChatX tramite poetry |
| `make build` | Compila il frontend |
| `make lint` | Esegue eslint e ruff |
| `make test` | Test frontend e backend |
| `make clean` | Rimuove artefatti di build e node_modules |
| Comando | Descrizione |
| -------------- | ----------------------------------------- |
| `make install` | Installa dipendenze pnpm e poetry |
| `make run` | Esegue MeshChatX tramite poetry |
| `make build` | Compila il frontend |
| `make lint` | Esegue eslint e ruff |
| `make test` | Test frontend e backend |
| `make clean` | Rimuove artefatti di build e node_modules |
## Versioning
+23 -23
View File
@@ -190,24 +190,24 @@ task dist:fe:rpm
## 設定
| 引数 | 環境変数 | デフォルト | 説明 |
| -------------------------- | ---------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------ |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Web サーバーのバインドアドレス |
| `--port` | `MESHCHAT_PORT` | `8000` | Web サーバーポート |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | HTTPS を無効化 |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (なし) | PEM 証明書と鍵のパス。両方指定。アイデンティティの `ssl/` 下の自動生成証明書を上書き。 |
| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (なし) | Reticulum(RNS)のログレベル(上記の名前または数値)。CLI は環境変数より優先。 |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | ブラウザを自動で開かない |
| `--auth` | `MESHCHAT_AUTH` | `false` | 基本認証を有効化 |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | データディレクトリ |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | 自動/同梱 | フロントエンドファイルディレクトリ(同梱資産のないインストール向け) |
| 引数 | 環境変数 | デフォルト | 説明 |
| -------------------------- | ---------------------------------------- | ----------- | -------------------------------------------------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Web サーバーのバインドアドレス |
| `--port` | `MESHCHAT_PORT` | `8000` | Web サーバーポート |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | HTTPS を無効化 |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (なし) | PEM 証明書と鍵のパス。両方指定。アイデンティティの `ssl/` 下の自動生成証明書を上書き。 |
| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (なし) | Reticulum(RNS)のログレベル(上記の名前または数値)。CLI は環境変数より優先。 |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | ブラウザを自動で開かない |
| `--auth` | `MESHCHAT_AUTH` | `false` | 基本認証を有効化 |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | データディレクトリ |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | 自動/同梱 | フロントエンドファイルディレクトリ(同梱資産のないインストール向け) |
## ブランチ
| ブランチ | 目的 |
| -------- | ------------------------------------------------------------ |
| `master` | 安定版リリース。本番向けのコードのみ。 |
| `dev` | 活発な開発。不安定または不完全な変更を含む場合があります。 |
| ブランチ | 目的 |
| -------- | ---------------------------------------------------------- |
| `master` | 安定版リリース。本番向けのコードのみ。 |
| `dev` | 活発な開発。不安定または不完全な変更を含む場合があります。 |
## 開発
@@ -222,14 +222,14 @@ task build:all
`Makefile` のショートカット:
| コマンド | 説明 |
| -------------- | ------------------------------------------ |
| `make install` | pnpm と poetry の依存関係をインストール |
| `make run` | poetry 経由で MeshChatX を実行 |
| `make build` | フロントエンドをビルド |
| `make lint` | eslint と ruff を実行 |
| `make test` | フロントエンドとバックエンドのテスト |
| `make clean` | ビルド成果物と node_modules を削除 |
| コマンド | 説明 |
| -------------- | --------------------------------------- |
| `make install` | pnpm と poetry の依存関係をインストール |
| `make run` | poetry 経由で MeshChatX を実行 |
| `make build` | フロントエンドをビルド |
| `make lint` | eslint と ruff を実行 |
| `make test` | フロントエンドとバックエンドのテスト |
| `make clean` | ビルド成果物と node_modules を削除 |
## バージョン管理
+22 -22
View File
@@ -190,24 +190,24 @@ task dist:fe:rpm
## Конфигурация
| Аргумент | Переменная окружения | По умолчанию | Описание |
| -------------------------- | ---------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Адрес привязки веб-сервера |
| `--port` | `MESHCHAT_PORT` | `8000` | Порт веб-сервера |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | Отключить HTTPS |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (нет) | Пути к PEM-сертификату и ключу; задаются вместе. Переопределяют автосгенерированные сертификаты в каталоге `ssl/` у идентичности. |
| Аргумент | Переменная окружения | По умолчанию | Описание |
| -------------------------- | ---------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Адрес привязки веб-сервера |
| `--port` | `MESHCHAT_PORT` | `8000` | Порт веб-сервера |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | Отключить HTTPS |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (нет) | Пути к PEM-сертификату и ключу; задаются вместе. Переопределяют автосгенерированные сертификаты в каталоге `ssl/` у идентичности. |
| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (нет) | Уровень лога стека Reticulum (RNS): `none`, `critical`, `error`, `warning`, `notice`, `verbose`, `debug`, `extreme` или число. CLI перекрывает переменную окружения, если заданы оба. |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | Не открывать браузер автоматически |
| `--auth` | `MESHCHAT_AUTH` | `false` | Базовая аутентификация |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Каталог данных |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | авто/bundled | Каталог фронтенда (для установок без встроенных ресурсов) |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | Не открывать браузер автоматически |
| `--auth` | `MESHCHAT_AUTH` | `false` | Базовая аутентификация |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | Каталог данных |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | авто/bundled | Каталог фронтенда (для установок без встроенных ресурсов) |
## Ветки
| Ветка | Назначение |
| -------- | ------------------------------------------------------------------------- |
| `master` | Стабильные релизы. Только код для продакшена. |
| `dev` | Активная разработка. Возможны нестабильные или неполные изменения. |
| Ветка | Назначение |
| -------- | ------------------------------------------------------------------ |
| `master` | Стабильные релизы. Только код для продакшена. |
| `dev` | Активная разработка. Возможны нестабильные или неполные изменения. |
## Разработка
@@ -222,14 +222,14 @@ task build:all
Сокращения `Makefile`:
| Команда | Описание |
| -------------- | ------------------------------------------ |
| `make install` | Установить зависимости pnpm и poetry |
| `make run` | Запуск MeshChatX через poetry |
| `make build` | Сборка фронтенда |
| `make lint` | eslint и ruff |
| `make test` | Тесты фронтенда и бэкенда |
| `make clean` | Удалить артефакты сборки и node_modules |
| Команда | Описание |
| -------------- | --------------------------------------- |
| `make install` | Установить зависимости pnpm и poetry |
| `make run` | Запуск MeshChatX через poetry |
| `make build` | Сборка фронтенда |
| `make lint` | eslint и ruff |
| `make test` | Тесты фронтенда и бэкенда |
| `make clean` | Удалить артефакты сборки и node_modules |
## Версионирование
+18 -18
View File
@@ -190,17 +190,17 @@ task dist:fe:rpm
## 配置
| 参数 | 环境变量 | 默认值 | 说明 |
| -------------------------- | ---------------------------------------- | ------------ | -------------------------------------------------------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Web 服务器绑定地址 |
| `--port` | `MESHCHAT_PORT` | `8000` | Web 服务器端口 |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | 禁用 HTTPS |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (无) | PEM 证书与私钥路径;需同时设置。覆盖身份下 `ssl/` 目录中自动生成的证书。 |
| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (无) | ReticulumRNS)日志级别:`none``critical``error` 等或数值。同时设置时 CLI 优先于环境变量。 |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | 不自动打开浏览器 |
| `--auth` | `MESHCHAT_AUTH` | `false` | 启用基本认证 |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | 数据目录 |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | 自动/捆绑 | 前端文件目录(无捆绑资源安装时需要) |
| 参数 | 环境变量 | 默认值 | 说明 |
| -------------------------- | ---------------------------------------- | ----------- | ----------------------------------------------------------------------------------------------- |
| `--host` | `MESHCHAT_HOST` | `127.0.0.1` | Web 服务器绑定地址 |
| `--port` | `MESHCHAT_PORT` | `8000` | Web 服务器端口 |
| `--no-https` | `MESHCHAT_NO_HTTPS` | `false` | 禁用 HTTPS |
| `--ssl-cert` / `--ssl-key` | `MESHCHAT_SSL_CERT` / `MESHCHAT_SSL_KEY` | (无) | PEM 证书与私钥路径;需同时设置。覆盖身份下 `ssl/` 目录中自动生成的证书。 |
| `--rns-log-level` | `MESHCHAT_RNS_LOG_LEVEL` | (无) | ReticulumRNS)日志级别:`none``critical``error` 等或数值。同时设置时 CLI 优先于环境变量。 |
| `--headless` | `MESHCHAT_HEADLESS` | `false` | 不自动打开浏览器 |
| `--auth` | `MESHCHAT_AUTH` | `false` | 启用基本认证 |
| `--storage-dir` | `MESHCHAT_STORAGE_DIR` | `./storage` | 数据目录 |
| `--public-dir` | `MESHCHAT_PUBLIC_DIR` | 自动/捆绑 | 前端文件目录(无捆绑资源安装时需要) |
## 分支
@@ -222,13 +222,13 @@ task build:all
`Makefile` 快捷方式:
| 命令 | 说明 |
| -------------- | ---------------------------- |
| `make install` | 安装 pnpm 与 poetry 依赖 |
| `make run` | 通过 poetry 运行 MeshChatX |
| `make build` | 构建前端 |
| `make lint` | 运行 eslint 与 ruff |
| `make test` | 运行前端与后端测试 |
| 命令 | 说明 |
| -------------- | --------------------------- |
| `make install` | 安装 pnpm 与 poetry 依赖 |
| `make run` | 通过 poetry 运行 MeshChatX |
| `make build` | 构建前端 |
| `make lint` | 运行 eslint 与 ruff |
| `make test` | 运行前端与后端测试 |
| `make clean` | 移除构建产物与 node_modules |
## 版本
+6 -3
View File
@@ -8179,7 +8179,8 @@ class ReticulumMeshChat:
index = int(file_index)
if index < 0:
return web.json_response(
{"message": "Invalid file index"}, status=400,
{"message": "Invalid file index"},
status=400,
)
file_attachment = fields["file_attachments"][index]
file_data = base64.b64decode(file_attachment["file_bytes"])
@@ -8700,7 +8701,8 @@ class ReticulumMeshChat:
except Exception as e:
RNS.log(f"Error in notifications_get: {e}", RNS.LOG_ERROR)
return web.json_response(
{"error": "Internal error"}, status=500,
{"error": "Internal error"},
status=500,
)
# get blocked destinations
@@ -9140,7 +9142,8 @@ class ReticulumMeshChat:
base = os.path.realpath(mbtiles_dir)
if not resolved.startswith(base + os.sep):
return web.json_response(
{"error": "Invalid filename"}, status=400,
{"error": "Invalid filename"},
status=400,
)
size = 0
+1 -3
View File
@@ -651,9 +651,7 @@ class DocsManager:
else:
shutil.copy2(s, d)
else:
safe_members = [
m for m in namelist if ".." not in m.split("/")
]
safe_members = [m for m in namelist if ".." not in m.split("/")]
zip_ref.extractall(temp_extract, members=safe_members)
src_path = os.path.join(temp_extract, root_folder)
if os.path.exists(src_path) and os.path.isdir(src_path):
+3 -1
View File
@@ -149,7 +149,9 @@ class RNCPHandler:
if self.fetch_jail:
if data.startswith(self.fetch_jail + "/"):
data = data.replace(self.fetch_jail + "/", "")
file_path = os.path.realpath(os.path.expanduser(f"{self.fetch_jail}/{data}"))
file_path = os.path.realpath(
os.path.expanduser(f"{self.fetch_jail}/{data}")
)
jail_real = os.path.realpath(self.fetch_jail)
if not file_path.startswith(jail_real + "/"):
return self.REQ_FETCH_NOT_ALLOWED
@@ -72,11 +72,7 @@
class="w-12 h-12 mx-auto text-gray-400 dark:text-gray-500"
/>
<div class="mt-2 text-sm text-gray-500 dark:text-gray-400">
{{
showHistory
? $t("app.notifications_empty_history")
: $t("app.notifications_no_new")
}}
{{ showHistory ? $t("app.notifications_empty_history") : $t("app.notifications_no_new") }}
</div>
</div>
+3 -1
View File
@@ -104,7 +104,9 @@ def test_download_task_success(mock_session_cls, docs_manager, temp_dirs):
async def iter_chunked(_n):
yield b"data" * 25
mock_response.content.iter_chunked = MagicMock(side_effect=lambda n: iter_chunked(n))
mock_response.content.iter_chunked = MagicMock(
side_effect=lambda n: iter_chunked(n)
)
mock_get = MagicMock()
mock_get.__aenter__ = AsyncMock(return_value=mock_response)
@@ -9,7 +9,9 @@ import pytest
from hypothesis import given, settings
from hypothesis import strategies as st
from meshchatx.src.backend.lxmf_utils import compute_lxmf_conversation_unread_from_latest_row
from meshchatx.src.backend.lxmf_utils import (
compute_lxmf_conversation_unread_from_latest_row,
)
def _row(incoming, last_read_iso, ts):
+2 -4
View File
@@ -127,12 +127,10 @@ describe("NotificationBell UI", () => {
});
const wrapper = mountBell({ attachTo: document.body });
await wrapper.vm.$nextTick();
const notifGetsAfterMount = global.api.get.mock.calls.filter((c) => c[0] === "/api/v1/notifications")
.length;
const notifGetsAfterMount = global.api.get.mock.calls.filter((c) => c[0] === "/api/v1/notifications").length;
await wrapper.find("button").trigger("click");
await new Promise((r) => setTimeout(r, 150));
const notifGetsAfterOpen = global.api.get.mock.calls.filter((c) => c[0] === "/api/v1/notifications")
.length;
const notifGetsAfterOpen = global.api.get.mock.calls.filter((c) => c[0] === "/api/v1/notifications").length;
expect(notifGetsAfterOpen - notifGetsAfterMount).toBe(1);
wrapper.unmount();
});