ZERTTEU KOMEK · TEST

Независимая тестовая среда

Только вымышленные данные. Это не рабочий кабинет.

Этот проект не подключён к действующим заявкам, почте или оплате. Он не принимает личные данные, файлы или пользовательские запросы на изменение. Основной сайт не изменяется.

Результат серверной самопроверки: все тесты пройдены.

Проверки выполняются один раз при запуске отдельного тестового процесса на синтетической базе в памяти. Синтетический интерфейс соавторов доступен по ссылке ниже. Запуск в рабочем кабинете требует отдельной интеграции и проверки.

Открыть тестовый кабинет соавторов · Тестовый кабинет владельца

test.cjs — PASS

Результаты проверки
PASS final card validates required fields
PASS draft incomplete card allowed
PASS full card and normalized email
PASS private storage is encrypted
PASS cross-client read isolation
PASS cross-client update blocked
PASS optimistic concurrency required
PASS correspondent cannot be stored on card
PASS ORCID checksum checked
PASS common invitation stable until revoked
PASS public info contains no personal info
PASS guest submission returns receipt only
PASS retries are idempotent
PASS changed retry cannot overwrite
PASS guest update route absent
PASS CSRF origin rejected
PASS anonymous private list blocked
PASS client cannot request owner list
PASS cross-client request blocked
PASS duplicate author rejected
PASS correspondent must be selected card
PASS draft does not apply order changes
PASS final assignment snapshot and correspondent
PASS card changes do not silently modify confirmed snapshot
PASS only client receives guest event
PASS revocation blocks old link
PASS new link after revocation
PASS expired link blocked
PASS disabled client cannot receive cards
PASS draft preserves unfilled positions
PASS final cannot contain gaps
PASS owner SQLite integer flag is accepted
PASS malformed bodies return controlled 400
PASS draft flag must be boolean
PASS authenticated create is retry safe
PASS archived client cannot use library or invitation
TOTAL 36 TESTS PASSED

audit-test.cjs — PASS

Результаты проверки
PASS numeric owner session is accepted
PASS null body rejected as 400, not 500
PASS assignment rollback if order update fails
PASS foreign card cannot be assigned
PASS duplicate empty draft positions supported
PASS invalid origin rejected even for authenticated owner
PASS guest cannot name destination in body

sidecar.test.cjs — PASS

Результаты проверки
PASS strict cookie extraction
PASS authenticated list uses me and does not leak other cookies
PASS request tenant ownership checked upstream
PASS assignment patches current API, preserving other details
PASS workflow assignment uses current edit_authors action
PASS timeout after write reconciles as confirmed
PASS timeout before write remains pending, new save blocked
PASS concurrent POST does not duplicate update
PASS upstream revision change prevents retry
PASS session cookie never persisted to sidecar database
PASS fixed transport rejects nonallowlisted paths without network
PASS fixed transport refuses redirects without follow
PASS HTTP rejects untrusted ingress
PASS HTTP origin and trusted network forwarded to sidecar
PASS canonical author comparison ignores property order
PASS canonical comparison catches changed author data
PASS canonical comparison uses array order and normalized correspondent
PASS expired guest lease fails closed without stored cookie
PASS canonical comparison detects changed author order
PASS absolute upstream deadline aborts active slow response stream
PASS absolute upstream deadline covers stalled response headers
PASS gateway config and absolute body timeout reject trickling upload
PASS recipient bridge revokes guest immediately and failures fail closed
TOTAL 23 SIDECAR TESTS PASSED

status-bridge.test.cjs — PASS

Результаты проверки
PASS active verified synthetic recipient allowed
PASS disable observed immediately without cached lease
PASS re-enable observed on next check
PASS archive observed even with disabled false
PASS restore observed without restart
PASS unverified recipient denied
PASS unknown and malformed IDs denied
PASS missing database not created
PASS incompatible schema rejects initialization
PASS closed bridge fails closed
TOTAL 10 STATUS BRIDGE TESTS PASSED

demo-server.test.cjs — PASS

Результаты проверки
PASS synthetic sessions distinct and server controlled
PASS session spoof or expired token rejected
PASS CSRF rejected
PASS real personal fields rejected before service
PASS unknown synthetic fixture rejected
PASS client creates only server fixture
PASS client lists cannot see each other
PASS cross-client update rejected
PASS owner sees synthetic cards from both accounts
PASS nonowner cannot use owner endpoint
PASS one active invitation per client
PASS guest info exposes no cards or client details
PASS guest submits only whitelisted fixture
PASS guest cannot submit real fields or change after submit
PASS draft permits incomplete synthetic card but final rejects
PASS assignment draft with empty slot does not change request
PASS final requires one selected correspondent
PASS cross-tenant card or request rejected
PASS final applies selected order and preserves position job field
PASS owner synthetic disable revokes access and guest submission immediately
PASS archived client and invitation denied immediately, restoration works
PASS invitation revocation and new token
PASS expired invitation unavailable
PASS HTTP health, real-data rejection and security headers
PASS per-peer rate limit and reset enforce bounded API use
PASS global API cap covers distinct peers
PASS session creation has lower per-peer cap
TOTAL 27 DEMO TESTS PASSED

demo-persistence.test.cjs — PASS

Результаты проверки
PASS private directory and files have restrictive modes
PASS synthetic seed and invitation created once
PASS guest submission and final assignment commit synthetic DB state
PASS restart preserves invitation and guest card without reseeding
PASS restart preserves both request snapshot and assignment revision
PASS request update and assignment snapshot rollback atomically
PASS parallel process instance sees same invitation and cards
PASS second worker accepts first worker cookie, stores only token hash
PASS cross-worker disabled and archived sessions denied immediately
PASS session expiry and cleanup shared across workers
PASS session cap is global and atomic across workers
PASS archive survives restart and disables guest link
PASS missing key with existing DB fails closed
PASS tampered 32-byte key is rejected without resetting data
PASS future unknown schema rejected
PASS restored valid key/schema still reads original synthetic data
TOTAL 16 PERSISTENCE TESTS PASSED