From 881e000e1f03d14f4d7d25279f49db3ab4d2567e Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Fri, 24 Aug 2018 14:17:40 -0400 Subject: [PATCH] WIP: Add capybara and start image upload spec --- Gemfile | 1 + Gemfile.lock | 3 +++ spec/features/user_uploads_image_spec.rb | 26 +++++++++++++++++++++++ spec/fixtures/spectrum.jpg | Bin 0 -> 9334 bytes spec/rails_helper.rb | 3 +++ 5 files changed, 33 insertions(+) create mode 100644 spec/features/user_uploads_image_spec.rb create mode 100644 spec/fixtures/spectrum.jpg diff --git a/Gemfile b/Gemfile index 8714b67..15b1c78 100644 --- a/Gemfile +++ b/Gemfile @@ -28,6 +28,7 @@ end group :test do gem "capybara" + gem "launchy" gem "rspec-rails" gem "shoulda-matchers" end diff --git a/Gemfile.lock b/Gemfile.lock index ff865ee..7879b00 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -98,6 +98,8 @@ GEM railties (>= 4.2.0) thor (>= 0.14, < 2.0) jwt (1.5.6) + launchy (2.4.3) + addressable (~> 2.3) loofah (2.2.2) crass (~> 1.0.2) nokogiri (>= 1.5.9) @@ -238,6 +240,7 @@ DEPENDENCIES dragonfly http jquery-rails + launchy omniauth-github pg pry diff --git a/spec/features/user_uploads_image_spec.rb b/spec/features/user_uploads_image_spec.rb new file mode 100644 index 0000000..c30a75e --- /dev/null +++ b/spec/features/user_uploads_image_spec.rb @@ -0,0 +1,26 @@ +require "rails_helper" + +OmniAuth.config.test_mode = true + +OmniAuth.config.mock_auth[:twitter] = OmniAuth::AuthHash.new( + provider: "github", + uid: "1", +) + +describe "user uploads image" do + it "uploads the image" do + visit "/" + + sign_in + + save_and_open_page + + attach_file("Image", "#{Rails.root}/spec/fixtures/spectrum.jpg") + end + + def sign_in + within(".centre-stage") do + click_link("Sign in with GitHub") + end + end +end diff --git a/spec/fixtures/spectrum.jpg b/spec/fixtures/spectrum.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bff43179152aa89a912e44d96524591fd211052e GIT binary patch literal 9334 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 literal 0 HcmV?d00001 diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index fc6e81e..bcbc1a5 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -9,6 +9,8 @@ end require "rspec/rails" # Add additional requires below this line. Rails is not loaded until this point! +require "capybara/rspec" + # Requires supporting ruby files with custom matchers and macros, etc, in # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are # run as spec files by default. This means that files in spec/support that end @@ -32,6 +34,7 @@ rescue ActiveRecord::PendingMigrationError => e puts e.to_s.strip exit 1 end + RSpec.configure do |config| # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures config.fixture_path = "#{::Rails.root}/spec/fixtures"