test(files): live CRUD папок + фасадный CRUD (#62) #66

Merged
eSlider merged 2 commits from test/w5-folder-crud#62 into main 2026-09-16 23:03:17 +01:00
Owner

W5 — CRUD/rename/move папок + фасадный CRUD (#62)

Closes #62

Эпик: #53

Что сделано

  • Живой тест папок (REST + DAV): TestIntegrationFileStores теперь гоняет по папкам Stat(folder), List(folder), Rename(folder), Move(folder в другую папку) и Delete(folder) через store.Delete. Дочерний файл проверяет, что содержимое папки переживает rename+move. Папки throwaway, чистятся в t.Cleanup.
  • Фасадный live-тест: новый TestIntegrationFacadeCRUD через c.Files() — create folder / upload / stat / list / rename / move / copy / delete, с проверкой Entry.Provider (write → rest) и Write()/Read() по readOrder.
  • SQL read-only на фасаде: TestFileClientWriteToReadOnlyStore — write-методы фасада поверх read-only pgStore дают ErrReadOnly.
  • Прод-фикс file_rest.go: REST-адаптер раньше умел только файлы (Stat через GetFile, MoveFiles, RenameFile, DeleteFiles). Фактический TDD-прогон показал падение TestIntegrationFileStores/rest на Stat(folder). Добавлена классификация id через stat/split; операции над папками идут через folderId/fileId: ListDavFolder для Stat, RenameDavFolder, MoveDavItems/CopyDavItems/DeleteDavItems.
  • copyEventually — ретрай асинхронного copy (как у существующих move/rename).

Тесты и вывод

go test ./...                                            # all green
go test -tags=integration -run 'TestIntegrationFileStores|TestIntegrationFacadeCRUD' -v .
--- PASS: TestIntegrationFacadeCRUD (2.51s)
--- PASS: TestIntegrationFileStores (14.08s)
    --- PASS: TestIntegrationFileStores/rest (7.88s)
    --- PASS: TestIntegrationFileStores/dav (5.56s)
PASS

Прогон стабилен 3×, мусор убран.

Замечания

  • go test -tags=integration ./... остаётся красным на пред-существующем cmd/office/fetch/task_integration_test.go (loader.TaskFields undefined) — не входит в эту задачу.

Проверки

  • gitleaks: no leaks.
  • Тесты не ослаблены; прод-код починен, а не замокан.
## W5 — CRUD/rename/move папок + фасадный CRUD (#62) Closes #62 Эпик: #53 ### Что сделано - **Живой тест папок (REST + DAV):** `TestIntegrationFileStores` теперь гоняет по папкам `Stat(folder)`, `List(folder)`, `Rename(folder)`, `Move(folder в другую папку)` и `Delete(folder)` через `store.Delete`. Дочерний файл проверяет, что содержимое папки переживает rename+move. Папки throwaway, чистятся в `t.Cleanup`. - **Фасадный live-тест:** новый `TestIntegrationFacadeCRUD` через `c.Files()` — create folder / upload / stat / list / rename / move / copy / delete, с проверкой `Entry.Provider` (write → `rest`) и `Write()/Read()` по `readOrder`. - **SQL read-only на фасаде:** `TestFileClientWriteToReadOnlyStore` — write-методы фасада поверх read-only `pgStore` дают `ErrReadOnly`. - **Прод-фикс `file_rest.go`:** REST-адаптер раньше умел только файлы (`Stat` через `GetFile`, `MoveFiles`, `RenameFile`, `DeleteFiles`). Фактический TDD-прогон показал падение `TestIntegrationFileStores/rest` на `Stat(folder)`. Добавлена классификация id через `stat`/`split`; операции над папками идут через folderId/fileId: `ListDavFolder` для `Stat`, `RenameDavFolder`, `MoveDavItems`/`CopyDavItems`/`DeleteDavItems`. - `copyEventually` — ретрай асинхронного copy (как у существующих move/rename). ### Тесты и вывод ``` go test ./... # all green go test -tags=integration -run 'TestIntegrationFileStores|TestIntegrationFacadeCRUD' -v . --- PASS: TestIntegrationFacadeCRUD (2.51s) --- PASS: TestIntegrationFileStores (14.08s) --- PASS: TestIntegrationFileStores/rest (7.88s) --- PASS: TestIntegrationFileStores/dav (5.56s) PASS ``` Прогон стабилен 3×, мусор убран. ### Замечания - `go test -tags=integration ./...` остаётся красным на пред-существующем `cmd/office/fetch/task_integration_test.go` (`loader.TaskFields undefined`) — не входит в эту задачу. ### Проверки - gitleaks: no leaks. - Тесты не ослаблены; прод-код починен, а не замокан.
eSlider added 2 commits 2026-09-16 22:49:24 +01:00
test(files): live CRUD папок + фасадный CRUD (#62)
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Test (Go stable) (pull_request) Failing after 4s
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go 1.25) (pull_request) Successful in 19s
9cd157c59f
eSlider merged commit 1c00edbd0b into main 2026-09-16 23:03:17 +01:00
eSlider deleted branch test/w5-folder-crud#62 2026-09-16 23:03:17 +01:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: eSlider/go-onlyoffice#66