From b2690348db7e35b96e8ebf7a44ef7ce705f1fda7 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Wed, 9 Sep 2015 14:40:32 +0200 Subject: [PATCH] adds specs for stats in queue --- spec/features/active_jobs_spec.rb | 45 +++++++++++++++++++++++++++++++ spec/support/common_actions.rb | 11 ++++++++ 2 files changed, 56 insertions(+) create mode 100644 spec/features/active_jobs_spec.rb diff --git a/spec/features/active_jobs_spec.rb b/spec/features/active_jobs_spec.rb new file mode 100644 index 000000000..bfb289641 --- /dev/null +++ b/spec/features/active_jobs_spec.rb @@ -0,0 +1,45 @@ +require 'rails_helper' + +feature 'ActiveJob' do + include ActiveJob::TestHelper + + let(:admin) { create(:administrator) } + + scenario 'use queue to track visits' do + debate = create(:debate) + + visit debate_path(debate) + + expect(enqueued_jobs.size).to eq(1) + perform_enqueued_jobs { StatsJob.perform_now(enqueued_jobs.first) } + + login_as(admin.user) + visit stats_path + + expect(page).to have_content 'Visits (1)' + end + + scenario "use queue to track new debates" do + user = create(:user) + + login_as(user) + visit new_debate_path + + create_a_debate + + expect(enqueued_jobs.size).to eq(2) + + expect(enqueued_jobs.first[:args][1]["name"]).to eq("event") + expect(enqueued_jobs.last[:args][1]["name"]).to eq("visit") + + perform_enqueued_jobs do + enqueued_jobs.each { |job| StatsJob.perform_now(job) } + end + + login_as(admin.user) + visit stats_path + + expect(page).to have_content 'Debate Created (1)' + end + +end \ No newline at end of file diff --git a/spec/support/common_actions.rb b/spec/support/common_actions.rb index 4753abbbb..407c8292d 100644 --- a/spec/support/common_actions.rb +++ b/spec/support/common_actions.rb @@ -34,6 +34,17 @@ module CommonActions click_button 'Send me reset password instructions' end + def create_a_debate + fill_in 'debate_title', with: 'Acabar con los desahucios' + fill_in 'debate_description', with: 'Esto es un tema muy importante porque...' + fill_in 'debate_captcha', with: correct_captcha_text + check 'debate_terms_of_service' + + click_button 'Start a debate' + + expect(page).to have_content 'Debate was successfully created.' + end + def comment_on(debate) user = create(:user)