draper/spec/integration/integration_spec.rb

67 lines
2.0 KiB
Ruby

require 'spec_helper'
require 'support/dummy_app'
require 'support/matchers/have_text'
app = DummyApp.new(ENV["RAILS_ENV"])
spec_types = {
view: ["/posts/1", "PostsController"],
mailer: ["/posts/1/mail", "PostMailer"]
}
app.start_server do
spec_types.each do |type, (path, controller)|
page = app.get(path)
describe "in a #{type}" do
it "runs in the correct environment" do
expect(page).to have_text(app.environment).in("#environment")
end
it "uses the correct view context controller" do
expect(page).to have_text(controller).in("#controller")
end
it "can use built-in helpers" do
expect(page).to have_text("Once upon a...").in("#truncated")
end
it "can use built-in private helpers" do
# Nokogiri unescapes text!
expect(page).to have_text("<script>danger</script>").in("#html_escaped")
end
it "can use user-defined helpers from app/helpers" do
expect(page).to have_text("Hello, world!").in("#hello_world")
end
it "can use user-defined helpers from the controller" do
expect(page).to have_text("Goodnight, moon!").in("#goodnight_moon")
end
it "can be passed to path helpers" do
expect(page).to have_text("/en/posts/1").in("#path_with_decorator")
end
it "can use path helpers with a model" do
expect(page).to have_text("/en/posts/1").in("#path_with_model")
end
it "can use path helpers with an id" do
expect(page).to have_text("/en/posts/1").in("#path_with_id")
end
it "can be passed to url helpers" do
expect(page).to have_text("http://www.example.com:12345/en/posts/1").in("#url_with_decorator")
end
it "can use url helpers with a model" do
expect(page).to have_text("http://www.example.com:12345/en/posts/1").in("#url_with_model")
end
it "can use url helpers with an id" do
expect(page).to have_text("http://www.example.com:12345/en/posts/1").in("#url_with_id")
end
end
end
end