Compare commits

...
2 Commits
Author SHA1 Message Date
Crowdin Bot a6fcde2222 New Crowdin translations by GitHub Action
Lint / Linting Checks (push) Canceled after 0s
Tests / vitest (1) (push) Canceled after 0s
Tests / vitest (2) (push) Canceled after 0s
Tests / vitest (3) (push) Canceled after 0s
Tests / vitest (4) (push) Canceled after 0s
2026-10-13 12:32:56 +00:00
shamoon 4a38eea1b0 Fix api page tests creating routes
Docker CI / Docker Build & Push (push) Canceled after 0s
Lint / Linting Checks (push) Canceled after 0s
Release Drafter / Update Release Draft (push) Canceled after 0s
Release Drafter / Auto Label PR (push) Canceled after 0s
Tests / vitest (1) (push) Canceled after 0s
Tests / vitest (2) (push) Canceled after 0s
Tests / vitest (3) (push) Canceled after 0s
Tests / vitest (4) (push) Canceled after 0s
2026-10-10 23:12:49 -07:00
7 changed files with 66 additions and 47 deletions
+1 -1
View File
@@ -791,7 +791,7 @@
"processing": "Processant", "processing": "Processant",
"processed": "Processat", "processed": "Processat",
"time": "Temps", "time": "Temps",
"failed": "Failed" "failed": "Error"
}, },
"firefly": { "firefly": {
"networth": "Valor Net", "networth": "Valor Net",
+15 -15
View File
@@ -871,12 +871,12 @@
"finished": "Fertig" "finished": "Fertig"
}, },
"bookorbit": { "bookorbit": {
"books": "Books", "books": "Bücher",
"authors": "Authors", "authors": "Autoren",
"series": "Series", "series": "Serien",
"storage": "Storage", "storage": "Storage",
"reading": "Reading", "reading": "Reading",
"finished": "Finished" "finished": "Beendet"
}, },
"jdownloader": { "jdownloader": {
"downloadCount": "Warteschlange", "downloadCount": "Warteschlange",
@@ -999,11 +999,11 @@
"message": "Nachricht", "message": "Nachricht",
"tags": "Schlagwörter", "tags": "Schlagwörter",
"none": "Keine", "none": "Keine",
"min": "Min", "min": "Minimal",
"low": "Low", "low": "Niedrig",
"default": "Default", "default": "Standard",
"high": "High", "high": "Hoch",
"urgent": "Urgent" "urgent": "Dringend"
}, },
"plantit": { "plantit": {
"events": "Ereignisse", "events": "Ereignisse",
@@ -1117,8 +1117,8 @@
"beszel": { "beszel": {
"name": "Name", "name": "Name",
"systems": "Systeme", "systems": "Systeme",
"up": "Up", "up": "Online",
"down": "Down", "down": "Offline",
"paused": "Pausiert", "paused": "Pausiert",
"pending": "Wartend", "pending": "Wartend",
"status": "Status", "status": "Status",
@@ -1268,10 +1268,10 @@
"steps": "Schritte" "steps": "Schritte"
}, },
"syncthing": { "syncthing": {
"connected": "Connected", "connected": "Verbunden",
"synced": "Synced", "synced": "Synchronisiert",
"errors": "Errors", "errors": "Fehler",
"storage": "Storage" "storage": "Speicher"
}, },
"sportarr": { "sportarr": {
"wanted": "Wanted", "wanted": "Wanted",
+13 -13
View File
@@ -257,14 +257,14 @@
"seed": "Semillas" "seed": "Semillas"
}, },
"qui": { "qui": {
"leech": "Leech", "leech": "Sanguijuela",
"download": "Download", "download": "Descargar",
"seed": "Seed", "seed": "Semilla",
"upload": "Upload", "upload": "Subir",
"total": "Total", "total": "Total",
"errored": "Errored", "errored": "Con error",
"ratio": "Ratio", "ratio": "Ratio",
"freeSpace": "Free" "freeSpace": "Libre"
}, },
"qnap": { "qnap": {
"cpuUsage": "Uso de la CPU", "cpuUsage": "Uso de la CPU",
@@ -791,7 +791,7 @@
"processing": "Procesando", "processing": "Procesando",
"processed": "Procesado", "processed": "Procesado",
"time": "Tiempo", "time": "Tiempo",
"failed": "Failed" "failed": "Fallido"
}, },
"firefly": { "firefly": {
"networth": "Patrimonio neto", "networth": "Patrimonio neto",
@@ -871,12 +871,12 @@
"finished": "Finalizado" "finished": "Finalizado"
}, },
"bookorbit": { "bookorbit": {
"books": "Books", "books": "Libros",
"authors": "Authors", "authors": "Autores",
"series": "Series", "series": "Series",
"storage": "Storage", "storage": "Almacenamiento",
"reading": "Reading", "reading": "Lectura",
"finished": "Finished" "finished": "Finalizado"
}, },
"jdownloader": { "jdownloader": {
"downloadCount": "En cola", "downloadCount": "En cola",
@@ -1279,6 +1279,6 @@
"leagues": "Ligas" "leagues": "Ligas"
}, },
"feed": { "feed": {
"noItems": "No items" "noItems": "No hay elementos"
} }
} }
+16 -16
View File
@@ -257,14 +257,14 @@
"seed": "Сид" "seed": "Сид"
}, },
"qui": { "qui": {
"leech": "Leech", "leech": "Лич",
"download": "Download", "download": "Скачивание",
"seed": "Seed", "seed": "Сид",
"upload": "Upload", "upload": "Загрузка",
"total": "Total", "total": "Всего",
"errored": "Errored", "errored": "Ошибок",
"ratio": "Ratio", "ratio": "Соотношение",
"freeSpace": "Free" "freeSpace": "Свободно"
}, },
"qnap": { "qnap": {
"cpuUsage": "Использование ЦП", "cpuUsage": "Использование ЦП",
@@ -791,7 +791,7 @@
"processing": "Обрабатывается", "processing": "Обрабатывается",
"processed": "Обработано", "processed": "Обработано",
"time": "Время", "time": "Время",
"failed": "Failed" "failed": "Неудачно"
}, },
"firefly": { "firefly": {
"networth": "Общая средства", "networth": "Общая средства",
@@ -871,12 +871,12 @@
"finished": "Завершено" "finished": "Завершено"
}, },
"bookorbit": { "bookorbit": {
"books": "Books", "books": "Книги",
"authors": "Authors", "authors": "Авторы",
"series": "Series", "series": "Серии",
"storage": "Storage", "storage": "Память",
"reading": "Reading", "reading": "Чтение",
"finished": "Finished" "finished": "Завершено"
}, },
"jdownloader": { "jdownloader": {
"downloadCount": "Очередь", "downloadCount": "Очередь",
@@ -1279,6 +1279,6 @@
"leagues": "Лиги" "leagues": "Лиги"
}, },
"feed": { "feed": {
"noItems": "No items" "noItems": "Ничего нет"
} }
} }
@@ -34,7 +34,7 @@ function mockResponse() {
async function loadHandler() { async function loadHandler() {
vi.resetModules(); vi.resetModules();
return (await import("./index")).default; return (await import("pages/api/mcp/index")).default;
} }
describe("pages/api/mcp", () => { describe("pages/api/mcp", () => {
@@ -57,7 +57,7 @@ vi.mock("widgets/widgets", () => ({
}, },
})); }));
import handler from "./proxy"; import handler from "pages/api/services/proxy";
function createReq({ method = "GET", body, query = {} } = {}) { function createReq({ method = "GET", body, query = {} } = {}) {
return { method, body, query }; return { method, body, query };
@@ -0,0 +1,19 @@
import { readdirSync } from "fs";
import { expect, it } from "vitest";
// Next compiles everything under src/pages into routes, so a colocated test ships
// to users and drags its dev dependencies into the runtime image.
function filesIn(dir, found = []) {
readdirSync(dir, { withFileTypes: true }).forEach((entry) => {
const path = `${dir}/${entry.name}`;
if (entry.isDirectory()) filesIn(path, found);
else found.push(path);
});
return found;
}
it("keeps test files out of src/pages", () => {
const tests = filesIn("src/pages").filter((path) => /\.(test|spec)\.[jt]sx?$/.test(path));
expect(tests).toEqual([]);
});