Skip to content

Commit 57acb10

Browse files
committed
Merge branch 'rails6'
2 parents ee57081 + 6ffbb8b commit 57acb10

File tree

10 files changed

+57
-46
lines changed

10 files changed

+57
-46
lines changed

.travis.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ services:
1414
addons:
1515
postgresql: "9.4"
1616
apt:
17-
sources:
18-
- google-chrome
1917
packages:
20-
- google-chrome-stable
21-
18+
- chromium-browser
19+
- libgconf-2-4
20+
chrome: stable
21+
2222
before_script:
2323
- sleep 10
2424
- sh -e /etc/init.d/xvfb start

Gemfile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,13 @@ group :development do
7979
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
8080
gem 'spring'
8181
gem 'spring-watcher-listen', '~> 2.0.0'
82-
gem 'rspec-rails'
82+
83+
gem 'rspec-rails', git: 'https://github.com/rspec/rspec-rails', branch: '4-0-dev'
84+
85+
#%w[rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
86+
# gem lib , :git => "https://github.com/rspec/#{lib}.git", :branch => 'master'
87+
#end
88+
8389
gem 'awesome_print'
8490
gem 'bundler-audit'
8591
gem 'pry-byebug'
@@ -92,8 +98,6 @@ group :test do
9298
#gem 'selenium-webdriver'
9399
gem 'webdrivers', '~> 4.0'
94100

95-
# Easy installation and use of chromedriver to run system tests with Chrome
96-
gem 'chromedriver-helper'
97101
gem 'database_cleaner'
98102
gem 'factory_bot_rails'
99103
gem 'faker'

Gemfile.lock

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,20 @@ GIT
55
friendly_id (5.2.5)
66
activerecord (>= 4.0.0)
77

8+
GIT
9+
remote: https://github.com/rspec/rspec-rails
10+
revision: c11a1b6fff72c6c45c67727480d4558742eb292c
11+
branch: 4-0-dev
12+
specs:
13+
rspec-rails (4.0.0.beta2)
14+
actionpack (>= 4.2)
15+
activesupport (>= 4.2)
16+
railties (>= 4.2)
17+
rspec-core (~> 3.8)
18+
rspec-expectations (~> 3.8)
19+
rspec-mocks (~> 3.8)
20+
rspec-support (~> 3.8)
21+
822
GEM
923
remote: https://rubygems.org/
1024
specs:
@@ -65,8 +79,6 @@ GEM
6579
zeitwerk (~> 2.1, >= 2.1.8)
6680
addressable (2.7.0)
6781
public_suffix (>= 2.0.2, < 5.0)
68-
archive-zip (0.12.0)
69-
io-like (~> 0.3.0)
7082
autoprefixer-rails (9.6.1.1)
7183
execjs
7284
awesome_print (1.8.0)
@@ -113,9 +125,6 @@ GEM
113125
xpath (~> 3.2)
114126
childprocess (2.0.0)
115127
rake (< 13.0)
116-
chromedriver-helper (2.1.1)
117-
archive-zip (~> 0.10)
118-
nokogiri (~> 1.8)
119128
coderay (1.1.2)
120129
coffee-rails (4.2.2)
121130
coffee-script (>= 2.2.0)
@@ -163,7 +172,6 @@ GEM
163172
hashie (3.6.0)
164173
i18n (1.6.0)
165174
concurrent-ruby (~> 1.0)
166-
io-like (0.3.0)
167175
jbuilder (2.9.1)
168176
activesupport (>= 4.2.0)
169177
jmespath (1.4.0)
@@ -295,14 +303,6 @@ GEM
295303
rspec-mocks (3.8.1)
296304
diff-lcs (>= 1.2.0, < 2.0)
297305
rspec-support (~> 3.8.0)
298-
rspec-rails (3.8.2)
299-
actionpack (>= 3.0)
300-
activesupport (>= 3.0)
301-
railties (>= 3.0)
302-
rspec-core (~> 3.8.0)
303-
rspec-expectations (~> 3.8.0)
304-
rspec-mocks (~> 3.8.0)
305-
rspec-support (~> 3.8.0)
306306
rspec-support (3.8.2)
307307
ruby_dep (1.5.0)
308308
rubyzip (1.2.4)
@@ -386,7 +386,6 @@ DEPENDENCIES
386386
bundler-audit
387387
byebug
388388
capybara (>= 2.15)
389-
chromedriver-helper
390389
coffee-rails (~> 4.2)
391390
dalli
392391
database_cleaner
@@ -410,7 +409,7 @@ DEPENDENCIES
410409
rails-controller-testing
411410
rb-readline
412411
react-rails
413-
rspec-rails
412+
rspec-rails!
414413
sass-rails (~> 5.0)
415414
searchkick
416415
sidekiq

spec/controllers/posts_controller_spec.rb

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
RSpec.describe PostsController do
44

5+
let(:user){create(:user)}
6+
57
describe "Access Control" do
68
describe "GET #show" do
7-
let(:post) { create(:post) }
9+
let(:post) { create(:post, user: user) }
810

911
it "non-logged-in user can also access the page" do
1012
get :show, params: {id: post.slug}
@@ -40,7 +42,7 @@
4042
end
4143

4244
describe "PATCH #update" do
43-
let(:post) { create(:post) }
45+
let(:post) { create(:post, user: user) }
4446
it "requires a logged-in user" do
4547
patch :update, params: {
4648
id: post.id,
@@ -51,7 +53,7 @@
5153
end
5254

5355
describe "DELETE #destroy" do
54-
let(:post) { create(:post) }
56+
let(:post) { create(:post, user: user) }
5557
it "requires a logged-in user" do
5658
delete :destroy, params: {id: post.id}
5759
expect(response).to redirect_to(new_user_session_path)
@@ -109,7 +111,10 @@
109111

110112
describe "POST #create_and_edit" do
111113
it "creates a post and redirect_to edit page" do
112-
@draft = build(:draft, title: " ", body: "this is a story of my life")
114+
@draft = build(:draft, title: " ",
115+
body: "this is a story of my life",
116+
user: user
117+
)
113118
expect{
114119
post :create_and_edit, params: {
115120
post: {
@@ -121,7 +126,7 @@
121126
end
122127

123128
it "redirects to edit page" do
124-
@draft = build(:draft, title: "", body: "hello world")
129+
@draft = build(:draft, title: "", body: "hello world", user: user)
125130
post :create_and_edit, params: {
126131
post: {
127132
title: @draft.title,

spec/features/user_bookmarks_post_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
RSpec.feature "Bookmarking a post" do
44
let(:user) { create(:user) }
5-
let(:post) { create(:post) }
5+
let(:post) { create(:post, user: user) }
66

77
scenario "signed-in user bookmarks a post successfully", js: true do
88
sign_in user

spec/features/user_bookmarks_response_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
RSpec.feature "Bookmarking a response" do
44
let(:user) { create(:user) }
5-
let(:post) { create(:post) }
6-
let(:response) { build(:post) }
5+
let(:post) { create(:post, user: user) }
6+
let(:response) { build(:post, user: user) }
77

88
background do
99
post.responses << response

spec/features/user_likes_response_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
RSpec.feature "Liking a response" do
44
let(:user) { create(:user) }
5-
let(:post) { create(:post) }
6-
let(:response) { build(:post) }
5+
let(:post) { create(:post, user: user) }
6+
let(:response) { build(:post, user: user) }
77

88
background do
99
post.responses << response

spec/models/post_spec.rb

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@
2020
require "rails_helper"
2121

2222
RSpec.describe Post do
23+
let(:user) { create(:user) }
24+
2325
describe "validations" do
24-
let(:post) { build(:post) }
26+
let(:post) { build(:post, user: user) }
2527

2628
it "requires a body" do
2729
post.body = " "
@@ -35,8 +37,8 @@
3537
end
3638

3739
describe "scopes" do
38-
let!(:post) { create(:post) }
39-
let!(:draft) { create(:draft) }
40+
let!(:post) { create(:post, user: user) }
41+
let!(:draft) { create(:draft, user: user) }
4042

4143
describe "published" do
4244
it "returns published posts" do
@@ -103,33 +105,33 @@
103105

104106
describe "#publish" do
105107
it "sets published_at and saves the record" do
106-
post = build(:draft)
108+
post = build(:draft, user: user)
107109
post.publish
108110
expect(post.published_at).to be_present
109111
expect(post).to be_persisted
110112
end
111113

112114
it "sets appropriate slug when there are multiple posts with the same title" do
113-
post1 = build(:draft, plain: "My favorite music")
115+
post1 = build(:draft, plain: "My favorite music", user: user)
114116
post1.publish
115117
expect(post1.slug).to eq('my-favorite-music')
116118

117-
post2 = build(:draft, plain: "My favorite music")
119+
post2 = build(:draft, plain: "My favorite music", user: user)
118120
post2.publish
119121
expect(post2).to be_persisted
120122
expect(post2.slug).not_to eq("my-favorite-music")
121123
expect(post2.slug).to match(/my-favorite-music/)
122124
end
123125

124126
it "returns falsly value when it fails validations" do
125-
post = build(:draft, body: ' ')
127+
post = build(:draft, body: ' ', user: user)
126128
expect(post.publish).to be_falsy
127129
end
128130
end
129131

130132
describe "#save_as_draft" do
131133
it "sets published_at to nil and saves the record" do
132-
post = build(:draft)
134+
post = build(:draft, user: user)
133135
post.save_as_draft
134136
expect(post.published_at).to be_nil
135137
expect(post).to be_persisted
@@ -139,7 +141,8 @@
139141
describe "words and word_count" do
140142
let(:post) { build(:post,
141143
body: "{}",
142-
plain: "This is five words long.")
144+
plain: "This is five words long." ,
145+
user: user)
143146
}
144147

145148
it "returns an array of words" do

spec/models/user_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@
8989

9090
describe "adding likes" do
9191
let(:user) { create(:user) }
92-
let(:post) { create(:post) }
93-
let(:response) { build(:post) }
92+
let(:post) { create(:post, user: user) }
93+
let(:response) { build(:post, user: user) }
9494
before :each do
9595
post.responses << response
9696
end
@@ -119,7 +119,7 @@
119119
describe "adding bookmarks" do
120120
let(:user) { create(:user) }
121121
let(:post) { create(:post) }
122-
let(:response) { build(:post) }
122+
let(:response) { build(:post, user: user) }
123123
before :each do
124124
post.responses << response
125125
end

spec/support/setup_capybara.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@
2424
desired_capabilities: capabilities
2525
end
2626

27-
Capybara.javascript_driver = ENV['CODESHIP'].present? ? :headless_chrome : :chrome
27+
Capybara.javascript_driver = ENV['CI'].present? ? :headless_chrome : :chrome
2828

2929
# Capybara.default_max_wait_time = 300

0 commit comments

Comments
 (0)