项目文件夹

文件
wehub-resource-sync 6ede33ccdb
Build and Push Docker Images / create_manifest (web, surfsense-web, , cpu) (push) Has been cancelled
Build and Push Docker Images / finalize_release (push) Has been cancelled
Obsidian Plugin Lint / lint (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / compute_version (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / verify_digests (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, , cpu) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda, cuda) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda126, cuda126) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:33:44 +08:00
..

Composio Google Drive — E2E

Phase 1 Playwright coverage for the Composio Drive connector.

Journey in this folder

File User expectation
journey.spec.ts "I connect Google Drive, choose a file, wait for indexing, and SurfSense contains that file's content."

What "passes" actually proves

  • The dashboard and connector dialog render for the authenticated user.
  • The Composio Drive connector fixture can complete the happy OAuth setup.
  • The selected Drive file config can be persisted.
  • Pipeline service summarizes/embeds/chunks an indexed file end-to-end.
  • Celery worker is reachable from the FastAPI process (queue + broker).
  • Document.content contains the Drive canary token after indexing.

Edge cases tested elsewhere

Playwright does not own backend edge cases. They are cheaper and easier to localize in pytest:

  • OAuth state freshness/tamper/malformed validation: surfsense_backend/tests/unit/utils/test_oauth_security.py
  • OAuth denied callback and duplicate/reconnection branch: surfsense_backend/tests/integration/composio/test_oauth_callback.py
  • Folder listing, selected file config persistence, and auth-expired classification: surfsense_backend/tests/integration/composio/test_drive_folders_route.py

What "passes" does NOT prove

  • Real Composio.dev integration (mocked).
  • Real LLM summarization quality (FakeListChatModel).
  • Real embedding semantics (constant 0.1 vectors).

These are intentional. Phase 1's deal is "the user-visible Drive journey crosses the connector/indexing seams". Phase 2 can add opt-in "live LLM" smoke tests under a separate workflow and a separate budget.

Adding a fourth Composio toolkit (e.g. Slack)

  1. Add fixture data to surfsense_backend/tests/e2e/fakes/fixtures/<toolkit>_*.json.
  2. Extend _Tools.execute() in surfsense_backend/tests/e2e/fakes/composio_module.py to handle the new toolkit's tool slugs (SLACK_FETCH_CONVERSATIONS, etc.).
  3. Add the toolkit to _AuthConfigs.list().
  4. Drop a sibling folder tests/connectors/composio/<toolkit>/ with one journey.spec.ts that matches the user's expectation for that toolkit.

The fixtures in tests/fixtures/connectors/composio-drive.fixture.ts are the template — copy + change toolkit_id.