Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
language: ruby
sudo: required
dist: trusty
addons:
chrome: stable
cache:
bundler: true
yarn: true
Expand Down Expand Up @@ -32,9 +34,9 @@ matrix:
- rvm: 2.1
gemfile: gemfiles/rails_3.2.gemfile
- rvm: 2.1
gemfile: rails_4.0.5.gemfile
gemfile: gemfiles/rails_4.0.5.gemfile
- rvm: 2.1
gemfile: rails_4.0_with_therubyracer.gemfile
gemfile: gemfiles/rails_4.0_with_therubyracer.gemfile
- rvm: 2.1
gemfile: gemfiles/rails_4.2_sprockets_2.gemfile
- rvm: 2.1
Expand Down Expand Up @@ -76,12 +78,6 @@ matrix:
- rvm: jruby-9.1.9.0

before_install:
- nvm install 7.8.0 && nvm use 7.8.0
- mkdir travis-phantomjs
- wget https://rmosolgo.github.io/assets/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
- tar -xvf $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis-phantomjs
- export PATH=$PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH
- phantomjs --version
# Repo for Yarn
- sudo apt-key adv --fetch-keys http://dl.yarnpkg.com/debian/pubkey.gpg
- echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ Then restart your development server.

This will:

- add some `//= require`s to `application.js`
- add some `//= require`s to `application.js`
- add a `components/` directory for React components
- add `server_rendering.js` for [server-side rendering](#server-side-rendering)

Expand All @@ -108,7 +108,7 @@ window.Post = React.createClass({
// or, equivalent:
class Post extends React.Component {
render() {
return <h1>{this.props.title}</h1>
return <h1>{this.props.title}</h1>
}
}
```
Expand Down Expand Up @@ -483,6 +483,8 @@ You can also specify this option in `react_component`:
## Development

- Run tests with `rake test` or `appraisal rake test`
- Integration tests run in Headless Chrome which is included in Chrome (59+ linux,OSX | 60+ Windows)
- ChromeDriver is included with `chromedriver-helper` gem so no need to manually install that 👍
- Update React assets with `rake react:update`
- Update the UJS with `rake ujs:update`
- Releases:
Expand Down
4 changes: 3 additions & 1 deletion react-rails.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ Gem::Specification.new do |s|
s.add_development_dependency 'guard-minitest'
s.add_development_dependency 'jbuilder'
s.add_development_dependency 'listen', '~> 3.0.0' # support Ruby 2.1
s.add_development_dependency 'poltergeist', '>= 0.3.3'
s.add_development_dependency 'chromedriver-helper'
s.add_development_dependency 'capybara'
s.add_development_dependency 'selenium-webdriver'
s.add_development_dependency 'test-unit', '~> 2.5'
s.add_development_dependency 'rails', '>= 3.2'

Expand Down
28 changes: 17 additions & 11 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,30 @@
require 'pathname'
require 'minitest/mock'
require 'capybara/rails'
require 'capybara/poltergeist'
require 'selenium/webdriver'
Dummy::Application.load_tasks

WebpackerHelpers.clear_webpacker_packs

Capybara.app = Rails.application

Capybara.register_driver :poltergeist_debug do |app|
poltergeist_options = {
# `page.driver.debug` will cause Poltergeist to open a browser window
inspector: true,
# hide warnings from React.js whitespace changes:
# and from React.createClass deprecation
js_errors: false
}
Capybara::Poltergeist::Driver.new(app, poltergeist_options)

Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
Capybara.javascript_driver = :poltergeist_debug

Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: { args: %w(headless disable-gpu) }
)

Capybara::Selenium::Driver.new(app,
browser: :chrome,
desired_capabilities: capabilities
)
end

Capybara.javascript_driver = :headless_chrome
Capybara.current_driver = Capybara.javascript_driver

CACHE_PATH = Pathname.new File.expand_path("../#{DUMMY_LOCATION}/tmp/cache", __FILE__)
Expand Down