From b22db8f048e3dab040b8c4a27dbf82f29087ce84 Mon Sep 17 00:00:00 2001 From: grendervill Date: Sat, 19 Sep 2026 23:49:24 +0300 Subject: [PATCH] =?UTF-8?q?fix(tests):=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=B7=D0=BA=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=BF=D0=BE=D0=BF=D0=B0=D0=B4=D0=B0=D1=8E=D1=82?= =?UTF-8?q?=20=D0=B2=20=D1=80=D0=B0=D0=B1=D0=BE=D1=87=D0=B5=D0=B5=20=D0=B4?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B2=D0=BE=20=D1=80=D0=B5=D0=BF=D0=BE=D0=B7?= =?UTF-8?q?=D0=B8=D1=82=D0=BE=D1=80=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Тестовый сервер писал файлы вложения в `internal/server/files`, потому что DATA_DIR не был задан: теперь тесты используют временный каталог, а `saveUpload` отказывается работать без настроенного каталога данных вместо записи в текущий рабочий каталог процесса. Лишние файлы удалены. --- internal/server/api_files.go | 5 +++++ internal/server/files/94894031435202560 | 1 - internal/server/files/94894082492465152 | 1 - internal/server/files/94894120186675200 | 1 - internal/server/files/94894120199258112 | 1 - internal/server/files/94894158157709312 | 1 - internal/server/files/94894158166097920 | 1 - internal/server/files/94894189732429824 | 1 - internal/server/files/94894189753401344 | 1 - internal/server/files/94894341939527680 | 1 - internal/server/files/94894341952110592 | 1 - internal/server/files/94894465700855808 | 1 - internal/server/files/94894465721827328 | 1 - internal/server/files/94896017563975680 | 1 - internal/server/files/94896017584947200 | 1 - internal/server/server_test.go | 3 +++ 16 files changed, 8 insertions(+), 14 deletions(-) delete mode 100644 internal/server/files/94894031435202560 delete mode 100644 internal/server/files/94894082492465152 delete mode 100644 internal/server/files/94894120186675200 delete mode 100644 internal/server/files/94894120199258112 delete mode 100644 internal/server/files/94894158157709312 delete mode 100644 internal/server/files/94894158166097920 delete mode 100644 internal/server/files/94894189732429824 delete mode 100644 internal/server/files/94894189753401344 delete mode 100644 internal/server/files/94894341939527680 delete mode 100644 internal/server/files/94894341952110592 delete mode 100644 internal/server/files/94894465700855808 delete mode 100644 internal/server/files/94894465721827328 delete mode 100644 internal/server/files/94896017563975680 delete mode 100644 internal/server/files/94896017584947200 diff --git a/internal/server/api_files.go b/internal/server/api_files.go index 1c58cea..daf0918 100644 --- a/internal/server/api_files.go +++ b/internal/server/api_files.go @@ -198,6 +198,11 @@ func (s *Server) requireFileAccess(ctx context.Context, rawFileID string, user * // saveUpload пишет файл на диск и регистрирует его в БД. func (s *Server) saveUpload(ctx context.Context, file store.File, content io.Reader) (*store.File, error) { + if s.cfg.DataDir == "" { + // Без каталога данных файл некуда положить: лучше явная ошибка, чем + // запись в текущий рабочий каталог процесса. + return nil, humaErrorStatus(http.StatusInternalServerError, "internal.error", "data directory is not configured") + } directory := filepath.Join(s.cfg.DataDir, "files") if err := os.MkdirAll(directory, 0o700); err != nil { return nil, humaErrorStatus(http.StatusInternalServerError, "internal.error", "cannot prepare storage") diff --git a/internal/server/files/94894031435202560 b/internal/server/files/94894031435202560 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894031435202560 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894082492465152 b/internal/server/files/94894082492465152 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894082492465152 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894120186675200 b/internal/server/files/94894120186675200 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894120186675200 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894120199258112 b/internal/server/files/94894120199258112 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894120199258112 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894158157709312 b/internal/server/files/94894158157709312 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894158157709312 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894158166097920 b/internal/server/files/94894158166097920 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894158166097920 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894189732429824 b/internal/server/files/94894189732429824 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894189732429824 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894189753401344 b/internal/server/files/94894189753401344 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894189753401344 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894341939527680 b/internal/server/files/94894341939527680 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894341939527680 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894341952110592 b/internal/server/files/94894341952110592 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894341952110592 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894465700855808 b/internal/server/files/94894465700855808 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894465700855808 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894465721827328 b/internal/server/files/94894465721827328 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894465721827328 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94896017563975680 b/internal/server/files/94896017563975680 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94896017563975680 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94896017584947200 b/internal/server/files/94896017584947200 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94896017584947200 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/server_test.go b/internal/server/server_test.go index d26ecf5..2964459 100644 --- a/internal/server/server_test.go +++ b/internal/server/server_test.go @@ -40,6 +40,9 @@ func newTestServer(t *testing.T) (*Server, *database.DB) { }) cfg := config.Config{ + // Данные (в том числе загруженные файлы) — во временном каталоге, + // иначе тесты пишут в рабочее дерево репозитория. + DataDir: t.TempDir(), Domain: "gl.mhspx.su", WebRoot: filepath.Join("testdata", "web"), FilesDomain: "files.gl.mhspx.su",