mock_server

in spec/gitlab_shell_two_factor_verify_spec.rb [19:58]


  def mock_server(server)
    server.mount_proc('/api/v4/internal/two_factor_manual_otp_check') do |req, res|
      res.content_type = 'application/json'
      res.status = 200

      params = JSON.parse(req.body)

      res.body = if params['otp_attempt'] == correct_otp
                   { success: true }.to_json
                 else
                   { success: false, message: 'boom!' }.to_json
                 end
    end

    server.mount_proc('/api/v4/internal/two_factor_push_otp_check') do |req, res|
      res.content_type = 'application/json'
      res.status = 200

      params = JSON.parse(req.body)
      id = params['key_id'] || params['user_id'].to_s

      if id == '100'
        res.body = { success: false, message: 'boom!' }.to_json
      else
        res.body = { success: true }.to_json
      end
    end

    server.mount_proc('/api/v4/internal/discover') do |req, res|
      res.status = 200
      res.content_type = 'application/json'

      if req.query['username'] == 'someone'
        res.body = { id: 100, name: 'Some User', username: 'someuser' }.to_json
      else
        res.body = { id: 101, name: 'Another User', username: 'another' }.to_json
      end
    end
  end