Sha256: 361c426165b5d026e5584cd0c74bb8c870923eb77697646eb16ce96c568fc9e2

Contents?: true

Size: 1.27 KB

Versions: 6

Compression:

Stored size: 1.27 KB

Contents

require "rails_helper"

# rubocop:disable Metrics/BlockLength
RSpec.describe "Captcha management" do
  def captcha_payload
    session[Captcher::BaseCaptcha::SESSION_KEY][:payload] ||
      session[Captcher::BaseCaptcha::SESSION_KEY]["payload"]
  end

  scenario "shows the captcha image" do
    get "/captcher/captcha"
    expect(response.status).to eq(200)
  end

  scenario "captcha payload remains unchanged between requests" do
    get "/captcher/captcha"
    payload1 = captcha_payload

    get "/captcher/captcha"
    payload2 = captcha_payload
    expect(payload1).to eq(payload2)
  end

  scenario "refresh the state of captcha" do
    post "/captcher/captcha/refresh"
    expect(response.status).to eq(200)
    payload1 = captcha_payload

    post "/captcher/captcha/refresh"
    payload2 = captcha_payload
    expect(payload1).to_not eq(payload2)
  end

  scenario "submit valid captcha confirmation" do
    get "/captcher/captcha"
    payload = captcha_payload

    post "/captcher/captcha/confirm", params: { confirmation: payload }
    expect(response.status).to eq(200)
  end

  scenario "submit invalid captcha confirmation" do
    post "/captcher/captcha/confirm", params: { confirmation: "IIIII" }
    expect(response.status).to eq(422)
  end
end
# rubocop:enable Metrics/BlockLength

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
captcher-0.3.1 spec/requests/captcha_management_spec.rb
captcher-0.3.0 spec/requests/captcha_management_spec.rb
captcher-0.2.1 spec/requests/captcha_management_spec.rb
captcher-0.2.0 spec/requests/captcha_management_spec.rb
captcher-0.1.1 spec/requests/captcha_management_spec.rb
captcher-0.1.0 spec/requests/captcha_management_spec.rb