mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-10-23 22:26:48 +09:00
Hello world
First open source release of Campfire 🎉
This commit is contained in:
commit
df76a227dc
664 files changed
+36235
No files matched your search
@@ -0,0 +1,56 @@
|
||||
require "test_helper"
|
||||
|
||||
class WebhookTest < ActiveSupport::TestCase
|
||||
test "payload" do
|
||||
message = messages(:first)
|
||||
message_path = Rails.application.routes.url_helpers.room_at_message_path(message.room, message)
|
||||
bot_messages_path = Rails.application.routes.url_helpers.room_bot_messages_path(message.room, users(:bender).bot_key)
|
||||
|
||||
WebMock.stub_request(:post, webhooks(:bender).url).
|
||||
with(body: hash_including(
|
||||
user: { id: message.creator.id, name: message.creator.name },
|
||||
room: { id: message.room.id, name: message.room.name, path: bot_messages_path },
|
||||
message: { id: message.id, body: { html: "First post!", plain: "First post!" }, path: message_path },
|
||||
))
|
||||
|
||||
response = webhooks(:bender).deliver(messages(:first))
|
||||
assert_equal 200, response.code.to_i
|
||||
end
|
||||
|
||||
test "delivery" do
|
||||
WebMock.stub_request(:post, webhooks(:bender).url).to_return(status: 200, body: "", headers: {})
|
||||
response = webhooks(:bender).deliver(messages(:first))
|
||||
assert_equal 200, response.code.to_i
|
||||
end
|
||||
|
||||
test "delivery with OK text reply" do
|
||||
WebMock.stub_request(:post, webhooks(:bender).url).to_return(status: 200, body: "Hello back!", headers: { "Content-Type" => "text/plain" })
|
||||
response = webhooks(:bender).deliver(messages(:first))
|
||||
|
||||
reply_message = Message.last
|
||||
assert_equal "Hello back!", reply_message.body.to_plain_text
|
||||
end
|
||||
|
||||
test "delivery with OK attachment reply" do
|
||||
WebMock.stub_request(:post, webhooks(:bender).url).to_return(status: 200, body: file_fixture("moon.jpg"), headers: { "Content-Type" => "image/jpeg" })
|
||||
response = webhooks(:bender).deliver(messages(:first))
|
||||
|
||||
reply_message = Message.last
|
||||
assert reply_message.attachment.present?
|
||||
end
|
||||
|
||||
test "delivery with error reply" do
|
||||
assert_no_difference -> { Message.count } do
|
||||
WebMock.stub_request(:post, webhooks(:bender).url).to_return(status: 500, body: "Internal Error!", headers: {})
|
||||
response = webhooks(:bender).deliver(messages(:first))
|
||||
end
|
||||
end
|
||||
|
||||
test "delivery that times out" do
|
||||
Webhook.any_instance.stubs(:post).raises(Net::OpenTimeout)
|
||||
response = webhooks(:bender).deliver(messages(:first))
|
||||
|
||||
reply_message = Message.last
|
||||
assert_equal "Failed to respond within 7 seconds", reply_message.body.to_plain_text
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user