Module: WebhookInbox::RSpecHelpers

Defined in:
lib/webhook_inbox/rspec/helpers.rb

Instance Method Summary collapse

Instance Method Details

#deliver_webhook(provider, event_type, payload: {}, path: nil, event_id: nil, secret: "test_secret") ⇒ Object

Simulate a signed webhook delivery to the given path. Signs the payload using the provider’s scheme so signature verification passes.

Parameters:

  • provider (Symbol)

    e.g. :stripe

  • event_type (String)

    e.g. “customer.subscription.created”

  • payload (Hash) (defaults to: {})

    the event payload (will be JSON-encoded)

  • path (String) (defaults to: nil)

    the route to POST to (default: “/webhooks/#provider”)

  • event_id (String) (defaults to: nil)

    override the generated event ID

  • secret (String) (defaults to: "test_secret")

    the webhook secret (default: “test_secret”)



17
18
19
20
21
# File 'lib/webhook_inbox/rspec/helpers.rb', line 17

def deliver_webhook(provider, event_type, payload: {}, path: nil, event_id: nil, secret: "test_secret")
  path ||= "/webhooks/#{provider}"
  headers = build_webhook_headers(provider, event_type, payload, event_id: event_id, secret: secret)
  post path, params: headers[:body], headers: headers[:headers]
end