595273277b
add a full coverage of Webdav and Nextcloud
purpose: prepare move to Drives and ensure no regression at all
test scenarios are in docs/plan/BASELINE_TESTS_NC_WEBDAV.md
current existing bugs identified via these tests:
┌──────────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Bug │ Surface │ Pin location │
├──────────┼─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ G4/G5/K5 │ NC │ AlreadyExists → 500 instead of 412 (handle_move + trashbin restore) │
├──────────┼─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ G9 │ NC │ Folder DELETE not row-recursive — orphan descendants stay live │
├──────────┼─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ M5/M7 │ Native │ resolve_path_for_user mismatch — PUT writes, GET reads via lenient lookup, MOVE/DELETE can't find │
│ │ │ via strict │
├──────────┼─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ M8 │ Native │ COPY discards destination filename — collides with source │
├──────────┼─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ N2 │ Native │ LOCK creates the token, mutators don't check it — class-2 advertisement is aspirational │
└──────────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
64 lines
2.6 KiB
Bash
64 lines
2.6 KiB
Bash
# Shared test-server environment variables.
|
|
# Sourced by tests/api/run.sh (shell) and read by tests/e2e/playwright.config.ts (Node).
|
|
# Do NOT include OXICLOUD_SERVER_PORT or OXICLOUD_STORAGE_PATH here —
|
|
# each test suite sets those to avoid port/directory conflicts.
|
|
|
|
DATABASE_URL=postgres://oxicloud_test:oxicloud_test@localhost:5433/oxicloud_test
|
|
OXICLOUD_DB_CONNECTION_STRING=postgres://oxicloud_test:oxicloud_test@localhost:5433/oxicloud_test
|
|
OXICLOUD_STATIC_PATH=./static
|
|
OXICLOUD_JWT_SECRET=test-secret-do-not-use-in-prod-minimum-32-chars
|
|
OXICLOUD_ENABLE_AUTH=true
|
|
OXICLOUD_ENABLE_TRASH=true
|
|
OXICLOUD_ENABLE_SEARCH=true
|
|
OXICLOUD_ENABLE_FILE_SHARING=true
|
|
OXICLOUD_ENABLE_MUSIC=true
|
|
OXICLOUD_EXPOSE_SYSTEM_USERS=true
|
|
OXICLOUD_WOPI_ENABLED=false
|
|
OXICLOUD_OIDC_ENABLED=false
|
|
|
|
OXICLOUD_NEXTCLOUD_ENABLED=true
|
|
|
|
RUST_LOG="warn,audit=info"
|
|
#RUST_LOG=debug
|
|
#RUST_LOG=info
|
|
|
|
# Per-chunk upload cap, exercised by chunked_upload_cap.hurl.
|
|
# 4 MiB: lets the existing grants.hurl single-chunk test (2.76 MB) pass
|
|
# under the cap, while the cap test sends a 5 MiB fixture to trigger 413.
|
|
OXICLOUD_CHUNK_MAX_BYTES=4194304
|
|
|
|
# Direct-PUT (non-chunked) cap, exercised by chunked_upload_cap.hurl.
|
|
# 4 MiB: same threshold as the chunked cap so the existing 5 MiB
|
|
# fixture (chunk-over-cap-5mb.bin) can prove BOTH caps with one
|
|
# generated file. All existing direct-PUT tests
|
|
# (test_dedup_webdav_multichunk.sh = 2.76 MB, _ref_count = ~66 KB,
|
|
# _nextcloud_put_blake3 = 32 B) stay safely under this cap.
|
|
OXICLOUD_DIRECT_PUT_MAX_BYTES=4194304
|
|
|
|
# grow up limits for tests
|
|
OXICLOUD_RATE_LIMIT_REFRESH_MAX=3600
|
|
OXICLOUD_RATE_LIMIT_LOGIN_MAX=3600
|
|
OXICLOUD_RATE_LIMIT_REGISTER_MAX=3600
|
|
|
|
# Magic-link / external-users flow (PR 9). The mock SMTP captures every
|
|
# outbound message in-process so external_users.hurl can retrieve the
|
|
# invitation body and follow the magic-link URL. The `SMTP_FROM` value
|
|
# is required so the mock can build a valid Message; host/port are
|
|
# irrelevant in mock mode but kept set for completeness.
|
|
OXICLOUD_SMTP_MOCK=true
|
|
OXICLOUD_SMTP_HOST=localhost
|
|
OXICLOUD_SMTP_PORT=25
|
|
OXICLOUD_SMTP_FROM='OxiCloud Tests <test@oxicloud.local>'
|
|
OXICLOUD_SMTP_TLS=none
|
|
OXICLOUD_ALLOW_EXTERNAL_USERS=true
|
|
|
|
# PR 12 — magic-link rate-limit caps lowered so external_users.hurl can
|
|
# exercise the cap behaviour with a small, deterministic request count.
|
|
# Production defaults are 50 / 5 / 200 respectively (see example.env).
|
|
OXICLOUD_MAGIC_LINK_INVITE_PER_CALLER_PER_HOUR=3
|
|
OXICLOUD_MAGIC_LINK_SEND_PER_EMAIL_PER_HOUR=2
|
|
OXICLOUD_MAGIC_LINK_SEND_PER_IP_PER_HOUR=50
|
|
|
|
# permits IP spoofing for tests
|
|
OXICLOUD_TRUST_PROXY_HEADERS=true
|