@ -5,6 +5,9 @@ RSpec.describe "Collection resources" do
let ( :collection_resources_service ) { instance_double ( CollectionResourcesService , file_exists_on_s3? : true ) }
before do
# rubocop:disable RSpec/AnyInstance
allow_any_instance_of ( CollectionResourcesHelper ) . to receive ( :editable_collection_resource_years ) . and_return ( [ 2024 , 2025 ] )
# rubocop:enable RSpec/AnyInstance
allow ( CollectionResourcesService ) . to receive ( :new ) . and_return ( collection_resources_service )
allow ( collection_resources_service ) . to receive ( :upload_collection_resource )
allow ( collection_resources_service ) . to receive ( :get_file_metadata ) . and_return ( { " content_type " = > " application/pdf " , " content_length " = > 1000 } )
@ -165,4 +168,28 @@ RSpec.describe "Collection resources" do
expect ( page ) . to have_content ( " There was an error uploading this file. " )
end
end
context " when uploading an additional resource " do
it " only allows excel files for lettings " do
expect ( CollectionResource . count ) . to eq ( 0 )
visit ( new_collection_resource_path ( year : 2025 , log_type : " sales " ) )
click_button ( " Add resource " )
expect ( page ) . to have_content ( " Select which file to upload " )
attach_file " file " , file_fixture ( " pdf_file.pdf " )
fill_in ( " collection_resource[display_name] " , with : " some file " )
click_button ( " Add resource " )
expect ( collection_resources_service ) . to have_received ( :upload_collection_resource ) . with ( " pdf_file.pdf " , anything )
expect ( CollectionResource . count ) . to eq ( 1 )
expect ( CollectionResource . first . year ) . to eq ( 2025 )
expect ( CollectionResource . first . log_type ) . to eq ( " sales " )
expect ( CollectionResource . first . resource_type ) . to be_nil
expect ( CollectionResource . first . mandatory ) . to be_falsey
expect ( CollectionResource . first . released_to_user ) . to be_nil
expect ( CollectionResource . first . display_name ) . to eq ( " some file " )
expect ( page ) . to have_content ( " The sales 2025 to 2026 some file is now available to users. " )
end
end
end