Skip to content

test(adapters): migrate Vercel Connect webhook tests to connectWebhookContract#673

Merged
bensabic merged 2 commits into
mainfrom
tests/connect-contract-adopt
Jul 7, 2026
Merged

test(adapters): migrate Vercel Connect webhook tests to connectWebhookContract#673
bensabic merged 2 commits into
mainfrom
tests/connect-contract-adopt

Conversation

@bensabic

@bensabic bensabic commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Adopts the shared connectWebhookContract from @chat-adapter/tests in the Slack, GitHub, and Linear suites, replacing the bespoke webhookVerifier blocks (verifier pass → 200, throw/falsy → 401, invoked with request + raw body, precedence over a native secret). Adapter-specific Connect tests are kept (token resolvers, GitHub bot-id capture, type-level mutual exclusivity, 400-on-invalid-JSON, Linear identity/withInstallation).

Each descriptor keeps initialize() network-free (GitHub botUserId, Slack _botUserId to skip auth.test, Linear stubs resolveConnectIdentity). Twilio is intentionally not included — it has a single generic webhookVerifier usage with no 200/401 gating suite to migrate.

First of three stacked test-generalization PRs. Tests-only, no changeset.

Adopt the shared `connectWebhookContract` from `@chat-adapter/tests` in
the Slack, GitHub, and Linear suites, replacing the bespoke
`webhookVerifier` blocks (verifier pass -> 200, throw/falsy -> 401,
invoked with request+body, precedence over a native secret). Keeps
adapter-specific Connect tests (token resolvers, bot-id capture,
type-level mutual exclusivity, 400 on invalid JSON). Twilio is left as-is
(generic verifier, no Connect gating suite to migrate).

Signed-off-by: Ben Sabic <bensabic@users.noreply.github.com>
@bensabic bensabic requested a review from a team as a code owner July 3, 2026 03:31
@vercel

vercel Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
chat Building Building Preview, Comment, Open in v0 Jul 7, 2026 1:14pm
chat-sdk-nextjs-chat Ready Ready Preview, Comment Jul 7, 2026 1:14pm

@bensabic bensabic merged commit 840c0d1 into main Jul 7, 2026
11 of 13 checks passed
@bensabic bensabic deleted the tests/connect-contract-adopt branch July 7, 2026 13:14
bensabic added a commit that referenced this pull request Jul 7, 2026
…rs (#674)

Wires `@chat-adapter/tests` as a devDependency and registers its
matchers via `setupFiles: ["@chat-adapter/tests/setup"]` across all 11
platform adapters, then replaces bespoke local
`mockLogger`/`createMockState`/`createMockChatInstance` with the shared
factories and adopts `toHaveDispatched`/`not.toHaveDispatched` where
clean.

- 10 adapters migrated (gchat, messenger, teams, whatsapp, telegram,
discord, twilio, linear, github, slack). Positional
`createMockChatInstance(...)` call sites converted to the options API
(slack 100, linear 35).
- `web` left as-is — its suite uses the real `Chat`/`createMemoryState`
for e2e, so the shared factories don't apply.
- Platform SDK mocks (Octokit, WebClient, socket-mode, `@linear/sdk`,
`fetch`) and the Phase 1 `connectWebhookContract` descriptors are left
intact.

Net ~−540 lines of duplicated test scaffolding. Stacked on #673.
Tests-only, no changeset.

---------

Signed-off-by: Ben Sabic <bensabic@users.noreply.github.com>
Co-authored-by: Ben Sabic <bensabic@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants