mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-08-07 15:28:45 +09:00
b065b40a34
and add test coverage for (un)supported file types. The avatar and logo variants move into the models and return nil for content types that are no longer variable, so the controllers fall back to the initials avatar and stock logo icon instead of raising `ActiveStorage::InvariableError`.
35 lines
898 B
Ruby
35 lines
898 B
Ruby
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 initials when image cannot be resized" do
|
|
users(:kevin).update! avatar: fixture_file_upload("pixel.bmp", "image/bmp")
|
|
get user_avatar_url(users(:kevin).avatar_token)
|
|
|
|
assert_response :success
|
|
assert_select "text", text: "K"
|
|
end
|
|
|
|
test "show image with invalid token responds 404" do
|
|
get user_avatar_url("not-a-valid-token")
|
|
|
|
assert_response :not_found
|
|
end
|
|
end
|