Validation incoming parameters (in: :body) in rswag specs (Rails)

649 Views Asked by At

I have spent a lot of time trying to emplement ability of validation incoming params is rswag specs, my code:

# incoming-parameter
params = {
  login: 'www',
  id: 15
}

# test rswag-spec
path '/controller/hello' do
  post('Say Hello!') do
    tags 'users'
      consumes 'application/json'
      produces 'application/json'

      parameter name: :my_params, in: :body, schema: {
        type: :object,
        required: %i[id name],
        properties: {
        id: { type: :string },
        name: { type: :string }
        }
      }  

      response(200, 'successful') do
        # schema '$ref' => '#/components/schemas/UserRegistrationResponse'

        describe 'new user with valid reg_params' do
          let(:my_params) { params }

          run_test! do |response|
            data = JSON.parse(response.body)
            puts "data = #{data}"
          end
        end
     end
  end
end

You expecting that incoming params won't pass validation, because id - is an integer, and name field is absent. But that's doesn't matter and test is compliting with success.

Can you say what's wrong with my code an why don't work validation of incoming parameters those declarated in rswag docs?

0

There are 0 best solutions below