# frozen_string_literal: true RSpec.describe DiscourseWebauthn::ChallengeGenerator do it "generates a DiscourseWebauthn::ChallengeGenerator::ChallengeSession with a challenge" do session = DiscourseWebauthn::ChallengeGenerator.generate expect(session).to be_a(DiscourseWebauthn::ChallengeGenerator::ChallengeSession) expect(session.challenge).not_to eq(nil) end describe "ChallengeSession" do describe "#commit_to_session" do let(:user) { Fabricate(:user) } it "stores the challenge in the provided session object" do secure_session = {} generated_session = DiscourseWebauthn::ChallengeGenerator.generate generated_session.commit_to_session(secure_session, user) expect(secure_session["staged-webauthn-challenge-#{user&.id}"]).to eq( generated_session.challenge, ) end end end end