spec/integration/page_spec.rb in wayfarer-0.4.6 vs spec/integration/page_spec.rb in wayfarer-0.4.7

- old
+ new

@@ -3,60 +3,75 @@ require "spec_helpers" describe "Pages" do let(:url) { test_app_path("git-scm.com/book/en/v2.html") } - describe Wayfarer::Base do + before do + stub_const("DummyJob", Class.new(ActiveJob::Base).include(Wayfarer::Base)) + stub_const("DummyHandler", Class.new.include(Wayfarer::Handler)) + end + + shared_examples "executes" do specify do - class self.class::DummyJob < Wayfarer::Base - extend SpecHelpers + DummyJob.crawl(url) + perform_enqueued_jobs + assert_performed_jobs 1 + expect(enqueued_jobs).to be_empty + end + end + + describe "page content" do + before do + DummyJob.class_eval do include RSpec::Matchers + extend SpecHelpers + include SpecHelpers - route { host test_app_host, to: :index } + route.host test_app_host, to: :index def index - expect(page.url).to eq("http://test:9876/git-scm.com/book/en/v2.html") + expect(page.url).to eq(test_app_path("git-scm.com/book/en/v2.html")) expect(page.status_code).to be(200) expect(page.body).not_to be_empty expect(page.headers.count).to be(9) expect(page.meta.links.all.count).to be(157) expect(page.meta.links.internal.count).to be(102) expect(page.meta.links.external.count).to be(55) end end - - self.class::DummyJob.crawl(url) - perform_enqueued_jobs end + + it_behaves_like "executes" end - describe Wayfarer::Handler do - specify do - class self.class::DummyJob < Wayfarer::Base - extend SpecHelpers + describe "page content with handler" do + before do + DummyJob.class_eval do + include RSpec::Matchers + include SpecHelpers - route { host test_app_host, to: DummyHandler } + route.to :index - class DummyHandler < Wayfarer::Handler - include RSpec::Matchers + def index + expect(page.url).to eq(test_app_path("git-scm.com/book/en/v2.html")) + expect(page.status_code).to be(200) + expect(page.body).not_to be_empty + expect(page.headers.count).to be(9) - route { to :index } - - def index - expect(page.url).to eq("http://test:9876/git-scm.com/book/en/v2.html") - expect(page.status_code).to be(200) - expect(page.body).not_to be_empty - expect(page.headers.count).to be(9) - - expect(page.meta.links.all.count).to be(157) - expect(page.meta.links.internal.count).to be(102) - expect(page.meta.links.external.count).to be(55) - end + expect(page.meta.links.all.count).to be(157) + expect(page.meta.links.internal.count).to be(102) + expect(page.meta.links.external.count).to be(55) end end - self.class::DummyJob.crawl(url) - perform_enqueued_jobs + DummyHandler.class_eval do + extend SpecHelpers + include SpecHelpers + + route.host test_app_host, to: DummyHandler + end end + + it_behaves_like "executes" end end