Merge branch 'master' into about-page
This commit is contained in:
commit
63cecdf23e
6
Gemfile
6
Gemfile
|
@ -28,7 +28,6 @@ gem 'nprogress-rails'
|
||||||
gem 'font-awesome-rails', '~> 4.2.0.0'
|
gem 'font-awesome-rails', '~> 4.2.0.0'
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
gem 'thin'
|
|
||||||
gem 'spring'
|
gem 'spring'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -37,10 +36,13 @@ group :production do
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development, :test do
|
group :development, :test do
|
||||||
|
gem 'thin'
|
||||||
gem 'rspec-rails', '~> 3.0.0'
|
gem 'rspec-rails', '~> 3.0.0'
|
||||||
gem 'shoulda-matchers'
|
|
||||||
gem 'factory_girl_rails'
|
gem 'factory_girl_rails'
|
||||||
gem 'faker'
|
gem 'faker'
|
||||||
|
gem 'capybara'
|
||||||
|
gem 'poltergeist'
|
||||||
gem 'simplecov'
|
gem 'simplecov'
|
||||||
|
gem 'database_cleaner'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
25
Gemfile.lock
25
Gemfile.lock
|
@ -35,6 +35,13 @@ GEM
|
||||||
sass (~> 3.2)
|
sass (~> 3.2)
|
||||||
bootstrap_form (2.2.0)
|
bootstrap_form (2.2.0)
|
||||||
builder (3.2.2)
|
builder (3.2.2)
|
||||||
|
capybara (2.4.3)
|
||||||
|
mime-types (>= 1.16)
|
||||||
|
nokogiri (>= 1.3.3)
|
||||||
|
rack (>= 1.0.0)
|
||||||
|
rack-test (>= 0.5.4)
|
||||||
|
xpath (~> 2.0)
|
||||||
|
cliver (0.3.2)
|
||||||
coffee-rails (4.1.0)
|
coffee-rails (4.1.0)
|
||||||
coffee-script (>= 2.2.0)
|
coffee-script (>= 2.2.0)
|
||||||
railties (>= 4.0.0, < 5.0)
|
railties (>= 4.0.0, < 5.0)
|
||||||
|
@ -43,6 +50,7 @@ GEM
|
||||||
execjs
|
execjs
|
||||||
coffee-script-source (1.8.0)
|
coffee-script-source (1.8.0)
|
||||||
daemons (1.1.9)
|
daemons (1.1.9)
|
||||||
|
database_cleaner (1.3.0)
|
||||||
devise (3.4.1)
|
devise (3.4.1)
|
||||||
bcrypt (~> 3.0)
|
bcrypt (~> 3.0)
|
||||||
orm_adapter (~> 0.1)
|
orm_adapter (~> 0.1)
|
||||||
|
@ -85,12 +93,20 @@ GEM
|
||||||
mail (2.6.1)
|
mail (2.6.1)
|
||||||
mime-types (>= 1.16, < 3)
|
mime-types (>= 1.16, < 3)
|
||||||
mime-types (2.4.3)
|
mime-types (2.4.3)
|
||||||
|
mini_portile (0.6.0)
|
||||||
minitest (5.4.2)
|
minitest (5.4.2)
|
||||||
multi_json (1.10.1)
|
multi_json (1.10.1)
|
||||||
mysql2 (0.3.16)
|
mysql2 (0.3.16)
|
||||||
|
nokogiri (1.6.3.1)
|
||||||
|
mini_portile (= 0.6.0)
|
||||||
nprogress-rails (0.1.6.3)
|
nprogress-rails (0.1.6.3)
|
||||||
orm_adapter (0.5.0)
|
orm_adapter (0.5.0)
|
||||||
pg (0.17.1)
|
pg (0.17.1)
|
||||||
|
poltergeist (1.5.1)
|
||||||
|
capybara (~> 2.1)
|
||||||
|
cliver (~> 0.3.1)
|
||||||
|
multi_json (~> 1.0)
|
||||||
|
websocket-driver (>= 0.2.0)
|
||||||
rack (1.5.2)
|
rack (1.5.2)
|
||||||
rack-test (0.6.2)
|
rack-test (0.6.2)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
|
@ -140,8 +156,6 @@ GEM
|
||||||
sdoc (0.4.1)
|
sdoc (0.4.1)
|
||||||
json (~> 1.7, >= 1.7.7)
|
json (~> 1.7, >= 1.7.7)
|
||||||
rdoc (~> 4.0)
|
rdoc (~> 4.0)
|
||||||
shoulda-matchers (2.7.0)
|
|
||||||
activesupport (>= 3.0.0)
|
|
||||||
simplecov (0.9.1)
|
simplecov (0.9.1)
|
||||||
docile (~> 1.1.0)
|
docile (~> 1.1.0)
|
||||||
multi_json (~> 1.0)
|
multi_json (~> 1.0)
|
||||||
|
@ -177,7 +191,10 @@ GEM
|
||||||
raindrops (~> 0.7)
|
raindrops (~> 0.7)
|
||||||
warden (1.2.3)
|
warden (1.2.3)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
|
websocket-driver (0.4.0)
|
||||||
will_paginate (3.0.7)
|
will_paginate (3.0.7)
|
||||||
|
xpath (2.0.0)
|
||||||
|
nokogiri (~> 1.3)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
@ -187,7 +204,9 @@ DEPENDENCIES
|
||||||
bootstrap-material-design
|
bootstrap-material-design
|
||||||
bootstrap-sass (~> 3.2.0.1)
|
bootstrap-sass (~> 3.2.0.1)
|
||||||
bootstrap_form
|
bootstrap_form
|
||||||
|
capybara
|
||||||
coffee-rails (~> 4.1.0)
|
coffee-rails (~> 4.1.0)
|
||||||
|
database_cleaner
|
||||||
devise
|
devise
|
||||||
factory_girl_rails
|
factory_girl_rails
|
||||||
faker
|
faker
|
||||||
|
@ -201,11 +220,11 @@ DEPENDENCIES
|
||||||
mysql2
|
mysql2
|
||||||
nprogress-rails
|
nprogress-rails
|
||||||
pg
|
pg
|
||||||
|
poltergeist
|
||||||
rails (= 4.1.7)
|
rails (= 4.1.7)
|
||||||
rspec-rails (~> 3.0.0)
|
rspec-rails (~> 3.0.0)
|
||||||
sass-rails (~> 4.0.3)
|
sass-rails (~> 4.0.3)
|
||||||
sdoc (~> 0.4.1)
|
sdoc (~> 0.4.1)
|
||||||
shoulda-matchers
|
|
||||||
simplecov
|
simplecov
|
||||||
spring
|
spring
|
||||||
thin
|
thin
|
||||||
|
|
|
@ -21,7 +21,7 @@ Rails.application.configure do
|
||||||
config.action_controller.perform_caching = false
|
config.action_controller.perform_caching = false
|
||||||
|
|
||||||
# Raise exceptions instead of rendering exception templates.
|
# Raise exceptions instead of rendering exception templates.
|
||||||
config.action_dispatch.show_exceptions = false
|
config.action_dispatch.show_exceptions = true # was: false
|
||||||
|
|
||||||
# Disable request forgery protection in test environment.
|
# Disable request forgery protection in test environment.
|
||||||
config.action_controller.allow_forgery_protection = false
|
config.action_controller.allow_forgery_protection = false
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
feature "User", :type => :feature do
|
||||||
|
before do
|
||||||
|
@user1 = create(:user)
|
||||||
|
@user2 = create(:user)
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "gets asked a question", js: true do
|
||||||
|
visit "/@#{@user1.screen_name}"
|
||||||
|
|
||||||
|
page.driver.render Rails.root.join("tmp/#{Time.now.to_i}_1.png"), full: true
|
||||||
|
|
||||||
|
fill_in "qb-question", with: Faker::Lorem.sentence
|
||||||
|
click_button "Ask"
|
||||||
|
wait_for_ajax
|
||||||
|
|
||||||
|
page.driver.render Rails.root.join("tmp/#{Time.now.to_i}_2.png"), full: true
|
||||||
|
|
||||||
|
expect(page).to have_text("Question asked successfully.")
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,5 +1,4 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe User, :type => :model do
|
RSpec.describe User, :type => :model do
|
||||||
# TODO: specs for user model
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,7 +24,7 @@ RSpec.configure do |config|
|
||||||
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
||||||
# examples within a transaction, remove the following line or assign false
|
# examples within a transaction, remove the following line or assign false
|
||||||
# instead of true.
|
# instead of true.
|
||||||
config.use_transactional_fixtures = true
|
config.use_transactional_fixtures = false
|
||||||
|
|
||||||
# RSpec Rails can automatically mix in different behaviours to your tests
|
# RSpec Rails can automatically mix in different behaviours to your tests
|
||||||
# based on their file location, for example enabling you to call `get` and
|
# based on their file location, for example enabling you to call `get` and
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe UserController, :type => :request do
|
RSpec.describe "user page", :type => :request do
|
||||||
before do
|
before do
|
||||||
# we need at least 2 users to test meaningfully
|
@user = create(:user)
|
||||||
@user1 = create(:user)
|
|
||||||
@user2 = create(:user)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'shows the user page' do
|
it 'shows the user page' do
|
||||||
get "/@#{@user1.screen_name}"
|
get "/@#{@user.screen_name}"
|
||||||
assert_select "h3.text-muted", :text => @user1.screen_name
|
assert_select "h3.text-muted", :text => @user.screen_name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
require 'simplecov'
|
require 'simplecov'
|
||||||
SimpleCov.start
|
SimpleCov.start
|
||||||
|
|
||||||
|
require 'capybara/poltergeist'
|
||||||
|
Capybara.register_driver :poltergeist do |app|
|
||||||
|
Capybara::Poltergeist::Driver.new(app, js_errors: false)
|
||||||
|
end
|
||||||
|
Capybara.javascript_driver = :poltergeist
|
||||||
|
|
||||||
# This file was generated by the `rails generate rspec:install` command. Conventionally, all
|
# This file was generated by the `rails generate rspec:install` command. Conventionally, all
|
||||||
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
||||||
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
RSpec.configure do |config|
|
||||||
|
config.before(:suite) do
|
||||||
|
DatabaseCleaner.clean_with :truncation
|
||||||
|
end
|
||||||
|
|
||||||
|
config.before(:each) do
|
||||||
|
DatabaseCleaner.strategy = :transaction
|
||||||
|
end
|
||||||
|
|
||||||
|
config.before(:each, js: true) do
|
||||||
|
DatabaseCleaner.strategy = :truncation
|
||||||
|
end
|
||||||
|
|
||||||
|
config.before(:each) do
|
||||||
|
DatabaseCleaner.start
|
||||||
|
end
|
||||||
|
|
||||||
|
config.after(:each) do
|
||||||
|
DatabaseCleaner.clean
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,15 @@
|
||||||
|
module WaitForAjax
|
||||||
|
def wait_for_ajax
|
||||||
|
Timeout.timeout(Capybara.default_wait_time) do
|
||||||
|
loop until finished_all_ajax_requests?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def finished_all_ajax_requests?
|
||||||
|
page.evaluate_script('jQuery.active').zero?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
RSpec.configure do |config|
|
||||||
|
config.include WaitForAjax, type: :feature
|
||||||
|
end
|
Loading…
Reference in New Issue