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",
"processed": "Processat",
"time": "Temps",
"failed": "Failed"
"failed": "Error"
},
"firefly": {
"networth": "Valor Net",
+15 -15
View File
@@ -871,12 +871,12 @@
"finished": "Fertig"
},
"bookorbit": {
"books": "Books",
"authors": "Authors",
"series": "Series",
"books": "Bücher",
"authors": "Autoren",
"series": "Serien",
"storage": "Storage",
"reading": "Reading",
"finished": "Finished"
"finished": "Beendet"
},
"jdownloader": {
"downloadCount": "Warteschlange",
@@ -999,11 +999,11 @@
"message": "Nachricht",
"tags": "Schlagwörter",
"none": "Keine",
"min": "Min",
"low": "Low",
"default": "Default",
"high": "High",
"urgent": "Urgent"
"min": "Minimal",
"low": "Niedrig",
"default": "Standard",
"high": "Hoch",
"urgent": "Dringend"
},
"plantit": {
"events": "Ereignisse",
@@ -1117,8 +1117,8 @@
"beszel": {
"name": "Name",
"systems": "Systeme",
"up": "Up",
"down": "Down",
"up": "Online",
"down": "Offline",
"paused": "Pausiert",
"pending": "Wartend",
"status": "Status",
@@ -1268,10 +1268,10 @@
"steps": "Schritte"
},
"syncthing": {
"connected": "Connected",
"synced": "Synced",
"errors": "Errors",
"storage": "Storage"
"connected": "Verbunden",
"synced": "Synchronisiert",
"errors": "Fehler",
"storage": "Speicher"
},
"sportarr": {
"wanted": "Wanted",
+13 -13
View File
@@ -257,14 +257,14 @@
"seed": "Semillas"
},
"qui": {
"leech": "Leech",
"download": "Download",
"seed": "Seed",
"upload": "Upload",
"leech": "Sanguijuela",
"download": "Descargar",
"seed": "Semilla",
"upload": "Subir",
"total": "Total",
"errored": "Errored",
"errored": "Con error",
"ratio": "Ratio",
"freeSpace": "Free"
"freeSpace": "Libre"
},
"qnap": {
"cpuUsage": "Uso de la CPU",
@@ -791,7 +791,7 @@
"processing": "Procesando",
"processed": "Procesado",
"time": "Tiempo",
"failed": "Failed"
"failed": "Fallido"
},
"firefly": {
"networth": "Patrimonio neto",
@@ -871,12 +871,12 @@
"finished": "Finalizado"
},
"bookorbit": {
"books": "Books",
"authors": "Authors",
"books": "Libros",
"authors": "Autores",
"series": "Series",
"storage": "Storage",
"reading": "Reading",
"finished": "Finished"
"storage": "Almacenamiento",
"reading": "Lectura",
"finished": "Finalizado"
},
"jdownloader": {
"downloadCount": "En cola",
@@ -1279,6 +1279,6 @@
"leagues": "Ligas"
},
"feed": {
"noItems": "No items"
"noItems": "No hay elementos"
}
}
+16 -16
View File
@@ -257,14 +257,14 @@
"seed": "Сид"
},
"qui": {
"leech": "Leech",
"download": "Download",
"seed": "Seed",
"upload": "Upload",
"total": "Total",
"errored": "Errored",
"ratio": "Ratio",
"freeSpace": "Free"
"leech": "Лич",
"download": "Скачивание",
"seed": "Сид",
"upload": "Загрузка",
"total": "Всего",
"errored": "Ошибок",
"ratio": "Соотношение",
"freeSpace": "Свободно"
},
"qnap": {
"cpuUsage": "Использование ЦП",
@@ -791,7 +791,7 @@
"processing": "Обрабатывается",
"processed": "Обработано",
"time": "Время",
"failed": "Failed"
"failed": "Неудачно"
},
"firefly": {
"networth": "Общая средства",
@@ -871,12 +871,12 @@
"finished": "Завершено"
},
"bookorbit": {
"books": "Books",
"authors": "Authors",
"series": "Series",
"storage": "Storage",
"reading": "Reading",
"finished": "Finished"
"books": "Книги",
"authors": "Авторы",
"series": "Серии",
"storage": "Память",
"reading": "Чтение",
"finished": "Завершено"
},
"jdownloader": {
"downloadCount": "Очередь",
@@ -1279,6 +1279,6 @@
"leagues": "Лиги"
},
"feed": {
"noItems": "No items"
"noItems": "Ничего нет"
}
}
@@ -34,7 +34,7 @@ function mockResponse() {
async function loadHandler() {
vi.resetModules();
return (await import("./index")).default;
return (await import("pages/api/mcp/index")).default;
}
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 = {} } = {}) {
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([]);
});