# frozen_string_literal: true module IntegrationHelpers def create_user get "/session/hp.json" expect(response.status).to eq(200) body = response.parsed_body honeypot = body["value"] challenge = body["challenge"] user = Fabricate.build(:user) post "/u.json", params: { username: user.username, email: user.email, password: "asdasljdhaiosdjioaeiow", password_confirmation: honeypot, challenge: challenge.reverse, } expect(response.status).to eq(200) body = response.parsed_body User.find(body["user_id"]) end def sign_in(user) get "/session/#{user.encoded_username}/become" user end def sign_out delete "/session" end def read_secure_session id = begin session[:secure_session_id] rescue NoMethodError nil end # This route will init the secure_session for us get "/session/hp.json" if id.nil? SecureSession.new(session[:secure_session_id]) end def write_secure_session(key, value) secure_session = read_secure_session secure_session[key] = value secure_session end end