Created
October 23, 2021 02:47
-
-
Save nishio-dens/07330d3ce166cd5ebfc3a66c6314f012 to your computer and use it in GitHub Desktop.
正常終了しないやつ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# frozen_string_literal: true | |
require "bundler/inline" | |
gemfile(true) do | |
source "https://rubygems.org" | |
git_source(:github) { |repo| "https://github.com/#{repo}.git" } | |
gem "rails", "~> 6.1.4" | |
gem "debug" | |
gem "puma" | |
gem "capybara" | |
gem "webdrivers" | |
gem "rspec-rails" | |
end | |
## Test rails controller | |
require "rails" | |
require "action_controller/railtie" | |
class TestApp < Rails::Application | |
config.root = __dir__ | |
config.hosts << "example.org" | |
secrets.secret_key_base = "secret_key_base" | |
config.logger = Logger.new($stdout) | |
Rails.logger = config.logger | |
routes.draw do | |
get "/" => "test#index" | |
get "/something" => "test#something" | |
end | |
end | |
class TestController < ActionController::Base | |
include Rails.application.routes.url_helpers | |
def index | |
render plain: "Hello Home" | |
end | |
def something | |
render plain: "Hello Something" | |
end | |
end | |
## Test spec - RSpec + capybara | |
require "rspec/rails" | |
require "rspec/autorun" | |
require "capybara" | |
require "debug" | |
Capybara.register_driver :selenium do |app| | |
Capybara::Selenium::Driver.new(app, browser: :chrome) | |
end | |
Capybara.server_host = "0.0.0.0" | |
Capybara.server_port = 3002 | |
Capybara.server = :puma | |
Capybara.javascript_driver = :selenium | |
def configure_chrome_capabilities(driver_options, iphone: false) | |
driver_options.add_argument "--disable-dev-shm-usage" | |
driver_options.add_argument "--no-sandbox" | |
if iphone | |
driver_options.add_argument "--user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1" | |
end | |
end | |
RSpec.configure do |config| | |
config.use_transactional_fixtures = true | |
config.use_active_record = false | |
config.render_views | |
config.before(:each, type: :system) do |example| | |
Capybara.session_name = example.metadata[:ua] || :default | |
if example.metadata[:ua] == :iphone | |
driven_by :selenium, using: :chrome, screen_size: [375, 960] do |driver_options| | |
configure_chrome_capabilities(driver_options, iphone: true) | |
end | |
else | |
driven_by :selenium, using: :chrome do |driver_options| | |
configure_chrome_capabilities(driver_options) | |
end | |
end | |
end | |
end | |
RSpec.describe "BugTest", type: :system do | |
it "visit /" do | |
visit "/" | |
expect(page).to have_content("Hello Home") | |
end | |
it "visit /something", ua: :iphone do | |
visit "/something" | |
expect(page).to have_content("Hello Something") | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment