mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-13 17:52:38 +02:00
57 lines
2.2 KiB
Markdown
57 lines
2.2 KiB
Markdown
|
|
# 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`.
|