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