Forum Discussion

devpull's avatar
devpull
Visitor
4 years ago

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

Hello all!  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?