mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-09-19 23:04:57 +09:00
Hello world
First open source release of Campfire 🎉
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
require "test_helper"
|
||||
|
||||
class Users::AvatarsControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
sign_in :david
|
||||
end
|
||||
|
||||
test "show initials" do
|
||||
get user_avatar_url(users(:kevin).avatar_token)
|
||||
assert_select "text", text: "K"
|
||||
end
|
||||
|
||||
test "show image" do
|
||||
users(:kevin).update! avatar: fixture_file_upload("moon.jpg", "image/jpeg")
|
||||
get user_avatar_url(users(:kevin).avatar_token)
|
||||
|
||||
assert_response :success
|
||||
assert_equal "image/webp", @response.content_type
|
||||
end
|
||||
|
||||
test "show image with invalid token responds 404" do
|
||||
get user_avatar_url("not-a-valid-token")
|
||||
|
||||
assert_response :not_found
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,28 @@
|
||||
require "test_helper"
|
||||
|
||||
class Users::ProfilesControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
sign_in :david
|
||||
end
|
||||
|
||||
test "show" do
|
||||
get user_profile_url
|
||||
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "update" do
|
||||
put user_profile_url, params: { user: { name: "John Doe", bio: "Acrobat" } }
|
||||
|
||||
assert_redirected_to user_profile_url
|
||||
assert_equal "John Doe", users(:david).reload.name
|
||||
assert_equal "Acrobat", users(:david).bio
|
||||
assert_equal "david@37signals.com", users(:david).email_address
|
||||
end
|
||||
|
||||
test "updates are limited to the current user" do
|
||||
put user_profile_url(users(:jason)), params: { user: { name: "John Doe" } }
|
||||
|
||||
assert_equal "Jason", users(:jason).reload.name
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,38 @@
|
||||
require "test_helper"
|
||||
|
||||
class Users::PushSubscriptionsControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
sign_in :david
|
||||
end
|
||||
|
||||
test "create new push subscription" do
|
||||
subscription_params = { "endpoint" => "https://apple", "p256dh_key" => "123", "auth_key" => "456" }
|
||||
|
||||
post user_push_subscriptions_url,
|
||||
params: { push_subscription: subscription_params }, headers: { "HTTP_USER_AGENT" => "Mozilla/5.0" }
|
||||
|
||||
assert_response :ok
|
||||
|
||||
assert_equal subscription_params, users(:david).push_subscriptions.last.attributes.slice("endpoint", "p256dh_key", "auth_key")
|
||||
assert_equal "Mozilla/5.0", users(:david).push_subscriptions.last.user_agent
|
||||
end
|
||||
|
||||
test "touch existing subscription" do
|
||||
assert_no_difference -> { users(:david).push_subscriptions.count } do
|
||||
assert_changes -> { push_subscriptions(:david_chrome).reload.updated_at } do
|
||||
post user_push_subscriptions_url(params: {
|
||||
push_subscription: push_subscriptions(:david_chrome).attributes.slice("endpoint", "p256dh_key", "auth_key")
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
assert_response :ok
|
||||
end
|
||||
|
||||
test "destroy a push subscription via dev mode" do
|
||||
assert_difference -> { Push::Subscription.count }, -1 do
|
||||
delete user_push_subscription_url(push_subscriptions(:david_chrome))
|
||||
assert_redirected_to user_push_subscriptions_url
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,30 @@
|
||||
require "test_helper"
|
||||
|
||||
class Users::SidebarsControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
sign_in :david
|
||||
end
|
||||
|
||||
test "show" do
|
||||
get user_sidebar_url
|
||||
|
||||
users(:david).rooms.opens.each do |room|
|
||||
assert_match /#{room.name}/, @response.body
|
||||
end
|
||||
end
|
||||
|
||||
test "unread directs" do
|
||||
rooms(:david_and_jason).messages.create! client_message_id: 999, body: "Hello", creator: users(:jason)
|
||||
|
||||
get user_sidebar_url
|
||||
assert_select ".unread", count: users(:david).memberships.select { |m| m.room.direct? && m.unread? }.count
|
||||
end
|
||||
|
||||
|
||||
test "unread other" do
|
||||
rooms(:watercooler).messages.create! client_message_id: 999, body: "Hello", creator: users(:jason)
|
||||
|
||||
get user_sidebar_url
|
||||
assert_select ".unread", count: users(:david).memberships.reject { |m| m.room.direct? || !m.unread? }.count
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user