# frozen_string_literal: true require 'test_helper' class SpacesTest < ActionDispatch::IntegrationTest def setup @admin = User.find_by(username: 'admin') login_as(@admin, scope: :user) end test 'create a space' do name = 'Biolab' post '/api/spaces', params: { space: { name: name, space_image_attributes: { attachment: fixture_file_upload('/files/spaces/Biology_laboratory.jpg') }, description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ante mi, porta ac dictum quis, feugiat...', characteristics: 'Sed fermentum ante ut elit lobortis, id auctor libero cursus. Sed augue lectus, mollis at luctus eu...', default_places: 6, space_files_attributes: [ { attachment: fixture_file_upload('/files/document.pdf', 'application/pdf', true) }, { attachment: fixture_file_upload('/files/document2.pdf', 'application/pdf', true) } ], disabled: false } }, headers: upload_headers # Check response format & status assert_equal 201, response.status, response.body assert_equal Mime[:json], response.content_type # Check the space was correctly created db_space = Space.where(name: name).first assert_not_nil db_space assert_not_nil db_space.space_image.attachment assert_not_nil db_space.space_files[0].attachment assert_not_nil db_space.space_files[1].attachment assert_equal name, db_space.name assert_equal 6, db_space.default_places assert_not_empty db_space.characteristics assert_not_empty db_space.description assert_not db_space.disabled assert_nil db_space.deleted_at end test 'update a space' do description = '
lorem ipsum dolor sit amet
' put '/api/spaces/1', params: { space: { description: description } }.to_json, headers: default_headers # Check response format & status assert_equal 200, response.status, response.body assert_equal Mime[:json], response.content_type # Check the space was correctly updated db_space = Space.find(1) assert_equal description, db_space.description space = json_response(response.body) assert_equal description, space[:description] end test 'delete a space' do delete '/api/spaces/1', headers: default_headers assert_response :success assert_empty response.body end end