Как я могу создать операцию удаления DELETE в rswag? - PullRequest
0 голосов
/ 24 января 2020

Я новичок в rswag. Я пытаюсь использовать его для создания путей входа и выхода. Я мог бы создать файл интеграции для / login. Но выход из системы сводит меня с ума:

require 'swagger_helper'

describe 'Sessions API' do
    path '/login' do
        post 'Create user session' do
            tags 'Sessions'
            produces 'application/json'
            consumes 'application/json'
            description 'Generate an Authorization Token from User data'
            parameter name: :params, in: :body, schema: {
                type: :object,
              properties: {
                email: { type: :string },
                password: { type: :string }
              },
              required:[:email, :password]
            }
            let(:session){User.create(email: 'user@example.co', password: '123456')}
            response 200, 'success' do
                consumes 'application/json'
                let(:params){{ email: session.email, password: session.password }}
                run_test!
            end
            response 400, 'bad request' do
                let(:params) { 'unauthorized' }
                run_test!
            end
        end
    end
# here is where my pain starts
    path '/logout' do
        delete 'destroy user session' do
            tags 'Sessions'
            consumes 'application/json'
            description 'Delete an Authorization Token given from User data'
            response 204, 'No content' do
                let(:Authorization) { "Basic #{::Base64.strict_encode64('jsmith:jspass')}" }
                run_test!
            end

        end

    end

end

Это мой тест для выхода из системы c на rspe (это работает)

describe "Testing logout" do
    it 'returns status no content' do
      request.headers['Content-Type'] = 'application/json'
      post :create, params: { email: @user1.email, password: @user1.password }
      delete :destroy
      expect(response.cookies["auth_token"]).to be_nil
      expect(response).to have_http_status(:no_content)

    end
  end

Я искал документы о том, как управлять уничтожить методы в rswag, но ничего не помогло. Как я могу создать этот метод УДАЛИТЬ в моей спецификации rswag?

...