| title | Live testing |
|---|---|
| description | Run broad Google API smoke tests against a dedicated account, including recent feature workflows and cleanup. |
The repository's live suite exercises real Google APIs and cleans up disposable resources. Use a dedicated test account:
make build
scripts/live-test.sh --account clawdbot@gmail.comThe account name must look like a test, bot, sandbox, QA, staging, or development
account unless --allow-nontest is supplied. GOG_KEYRING_PASSWORD must already
be available when the file keyring is active.
The default suite covers core output and schema behavior plus live Gmail, Calendar, Drive, Docs, Sheets, Slides, Tasks, Contacts, People, and other available services. Recent-feature coverage includes:
- Docs UTF-16 ranges, links, named ranges, comments locate/poll, orphan guards, literal anchors, tab-scoped Markdown/export, one-column and nested-list tables, persisted batches, direct table operations, URL images, and content enumerators.
- Sheets rich-text links, validation, structured tables, and table-aware dimension deletion.
- Slides local-image insertion with API read-back.
- Calendar attachment replacement and clearing.
- Drive shortcuts, revisions, and persisted changes polling.
- Gmail thread-aware drafts, attachment metadata preservation/clearing, and explicit thread archive semantics.
- Chat cross-space message search with basic/full result envelopes, explicit cursor continuation, and empty-result exit behavior when configured.
- Contacts duplicate merge dry-run, apply, merged-field readback, and cleanup.
- CLI schema exit codes, Git-style help, output-mode precedence, and early validation errors.
Commands that return stable retryable exit code 8 are retried up to three
times by default. Set GOG_LIVE_RETRIES to change the attempt count. Created
Drive files, Docs batches, Calendar events, Gmail drafts/threads, and Photos
Picker sessions are also registered for best-effort cleanup if a later check
fails.
Some APIs need account- or project-specific setup:
GOG_LIVE_CHAT_SPACE=spaces/... scripts/live-test.sh --account workspace@example.com
GOG_LIVE_CHAT_SEARCH_QUERY='known matching text' scripts/live-test.sh --account workspace@example.com
GOG_LIVE_GMAIL_WATCH_TOPIC=projects/.../topics/... scripts/live-test.sh --account bot@example.com
GOG_LIVE_CLASSROOM_COURSE=<courseId> scripts/live-test.sh --account bot@example.comPhotos Picker is tested when the account has the explicit photospicker
service:
gog auth add you@gmail.com --services photospickerGoogle Chat attachments and Keep require Workspace accounts. Gmail watch pull requires a configured Pub/Sub subscription. The suite reports these as skipped instead of treating unavailable infrastructure as a product failure.
GOG_LIVE_CHAT_SEARCH_QUERY must match at least one message available to the
test account. The read-only smoke path checks basic/full result envelopes,
cursor advancement, and the stable --fail-empty exit contract. It requests
Markdown and untrusted-wrapping options to check that the API accepts them;
it does not compare rendered text or validate the wrapping transformation.
Cursor continuation must return a different message resource, so silently
repeating the first page fails the check.
Full-view read state may be unavailable; when present it must be a boolean.
The smoke test does not require full and basic results to differ in that case.
It uses Google's documented
POST spaces.messages.search
method; Developer Preview relevance ordering is intentionally excluded.
Use --fast to skip Docs, Sheets, and Slides, --skip for selected modules,
and --strict when optional service failures should fail the run.