# frozen_string_literal: true RSpec.shared_examples 'a PUT request' do context 'with correct parameters' do it 'returns a successful http status and a response with the putted data' do put(route, params:, headers:) expect(response).to have_http_status(200) expect(response.body).to include_strings(expected_text) end end context 'with incorrect parameters' do it 'returns a client side error http status and an error message' do put(route, params: wrong_params, headers:) expect(response).to have_http_status(desired_error_status) expect(response.body).to include_strings(expected_error_messages) end end context 'to an nonexistent resource' do it 'returns a 404 status' do put(wrong_route, params:, headers:) expect(response).to have_http_status(404) end end end