1

我是 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

这是我的 rspec 注销测试(有效)

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 规范中创建这个 DELETE destroy 方法?

4

0 回答 0