Skip to content

Commit 8aaaa44

Browse files
committed
Merge pull request #1324 from rails-api/get_tests_running_on_rails_master
Get tests passing on Rails 5
2 parents 4590161 + 6588dee commit 8aaaa44

File tree

14 files changed

+99
-20
lines changed

14 files changed

+99
-20
lines changed

.travis.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ sudo: false
55
rvm:
66
- 1.9.3
77
- 2.0.0
8-
- 2.2
8+
- 2.1
9+
- 2.2.2
910
- ruby-head
1011
- rbx-2
1112

@@ -24,12 +25,18 @@ env:
2425
- "RAILS_VERSION=master"
2526

2627
matrix:
27-
include:
28+
exclude:
29+
- rvm: 1.9.3
30+
env: RAILS_VERSION=master
31+
- rvm: 2.0.0
32+
env: RAILS_VERSION=master
2833
- rvm: 2.1
34+
env: RAILS_VERSION=master
35+
include:
36+
- rvm: 2.2
2937
env: CAPTURE_STDERR=true
3038
- rvm: jruby-19mode
3139
env: JRUBY_OPTS='--server -Xcompile.invokedynamic=false -Xcli.debug=true --debug'
3240
allow_failures:
3341
- rvm: ruby-head
34-
- env: "RAILS_VERSION=master"
3542
fast_finish: true

Gemfile

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,23 @@ version = ENV['RAILS_VERSION'] || '4.2'
1111

1212
if version == 'master'
1313
gem 'rack', github: 'rack/rack'
14+
gem 'arel', github: 'rails/arel'
1415
git 'https://github.com/rails/rails.git' do
1516
gem 'railties'
1617
gem 'activesupport'
1718
gem 'activemodel'
1819
gem 'actionpack'
20+
gem 'activerecord', group: :test
1921
# Rails 5
2022
gem 'actionview'
2123
end
22-
# Rails 5
23-
gem 'rails-controller-testing', github: 'rails/rails-controller-testing'
2424
else
2525
gem_version = "~> #{version}.0"
2626
gem 'railties', gem_version
2727
gem 'activesupport', gem_version
2828
gem 'activemodel', gem_version
2929
gem 'actionpack', gem_version
30+
gem 'activerecord', gem_version, group: :test
3031
end
3132

3233
# https://github.com/bundler/bundler/blob/89a8778c19269561926cea172acdcda241d26d23/lib/bundler/dependency.rb#L30-L54
@@ -36,11 +37,9 @@ end
3637
gem 'tzinfo-data', platforms: (@windows_platforms + [:jruby])
3738

3839
group :test do
39-
gem 'activerecord'
4040
gem 'sqlite3', platform: (@windows_platforms + [:ruby])
4141
gem 'activerecord-jdbcsqlite3-adapter', platform: :jruby
4242

43-
gem 'minitest-reporters', require: false, group: :development
4443
gem 'codeclimate-test-reporter', require: false
4544
gem 'simplecov', '~> 0.10', require: false, group: :development
4645
end

active_model_serializers.gemspec

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,16 @@ Gem::Specification.new do |spec|
4141
# 'minitest'
4242
# 'thread_safe'
4343

44+
spec.add_development_dependency 'activerecord', rails_versions
45+
# arel
46+
# activesuport
47+
# activemodel
48+
4449
# Soft dependency for pagination
4550
spec.add_development_dependency 'kaminari', ' ~> 0.16.3'
4651
spec.add_development_dependency 'will_paginate', '~> 3.0', '>= 3.0.7'
4752

4853
spec.add_development_dependency 'bundler', '~> 1.6'
4954
spec.add_development_dependency 'timecop', '~> 0.7'
55+
spec.add_development_dependency 'minitest-reporters'
5056
end

lib/active_model/serializer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ def self.fragmented(serializer)
152152
# @todo require less code comments. See
153153
# https://github.com/rails-api/active_model_serializers/pull/1249#issuecomment-146567837
154154
def self.cache(options = {})
155-
self._cache = ActionController::Base.cache_store if Rails.configuration.action_controller.perform_caching
155+
self._cache = ActiveModelSerializers.config.cache_store if ActiveModelSerializers.config.perform_caching
156156
self._cache_key = options.delete(:key)
157157
self._cache_only = options.delete(:only)
158158
self._cache_except = options.delete(:except)

lib/active_model/serializer/railtie.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ class Railtie < Rails::Railtie
88
end
99
end
1010

11+
initializer 'active_model_serializers.caching' do
12+
ActiveSupport.on_load(:action_controller) do
13+
ActiveModelSerializers.config.cache_store = ActionController::Base.cache_store
14+
ActiveModelSerializers.config.perform_caching = Rails.configuration.action_controller.perform_caching
15+
end
16+
end
17+
1118
initializer 'generators' do |app|
1219
app.load_generators
1320
require 'generators/serializer/resource_override'

lib/active_model_serializers.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
module ActiveModelSerializers
66
mattr_accessor(:logger) { ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT)) }
77

8+
def self.config
9+
ActiveModel::Serializer.config
10+
end
11+
812
extend ActiveSupport::Autoload
913
autoload :Model
1014
autoload :Callbacks

test/action_controller/json_api/pagination_test.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def test_render_pagination_links_with_will_paginate
5353
'next' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1",
5454
'last' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1" }
5555

56-
get :render_pagination_using_will_paginate, page: { number: 2, size: 1 }
56+
get :render_pagination_using_will_paginate, params: { page: { number: 2, size: 1 } }
5757
response = JSON.parse(@response.body)
5858
assert_equal expected_links, response['links']
5959
end
@@ -62,7 +62,7 @@ def test_render_only_last_and_next_pagination_links
6262
expected_links = { 'self' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2",
6363
'next' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2",
6464
'last' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2" }
65-
get :render_pagination_using_will_paginate, page: { number: 1, size: 2 }
65+
get :render_pagination_using_will_paginate, params: { page: { number: 1, size: 2 } }
6666
response = JSON.parse(@response.body)
6767
assert_equal expected_links, response['links']
6868
end
@@ -73,7 +73,7 @@ def test_render_pagination_links_with_kaminari
7373
'prev' => "#{KAMINARI_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=1",
7474
'next' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1",
7575
'last' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1" }
76-
get :render_pagination_using_kaminari, page: { number: 2, size: 1 }
76+
get :render_pagination_using_kaminari, params: { page: { number: 2, size: 1 } }
7777
response = JSON.parse(@response.body)
7878
assert_equal expected_links, response['links']
7979
end
@@ -82,7 +82,7 @@ def test_render_only_prev_and_first_pagination_links
8282
expected_links = { 'self' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1",
8383
'first' => "#{KAMINARI_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=1",
8484
'prev' => "#{KAMINARI_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=1" }
85-
get :render_pagination_using_kaminari, page: { number: 3, size: 1 }
85+
get :render_pagination_using_kaminari, params: { page: { number: 3, size: 1 } }
8686
response = JSON.parse(@response.body)
8787
assert_equal expected_links, response['links']
8888
end
@@ -91,7 +91,7 @@ def test_render_only_last_and_next_pagination_links_with_additional_params
9191
expected_links = { 'self' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2&teste=additional",
9292
'next' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2&teste=additional",
9393
'last' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2&teste=additional" }
94-
get :render_pagination_using_will_paginate, page: { number: 1, size: 2 }, teste: 'additional'
94+
get :render_pagination_using_will_paginate, params: { page: { number: 1, size: 2 }, teste: 'additional' }
9595
response = JSON.parse(@response.body)
9696
assert_equal expected_links, response['links']
9797
end
@@ -100,13 +100,13 @@ def test_render_only_prev_and_first_pagination_links_with_additional_params
100100
expected_links = { 'self' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1&teste=additional",
101101
'first' => "#{KAMINARI_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=1&teste=additional",
102102
'prev' => "#{KAMINARI_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=1&teste=additional" }
103-
get :render_pagination_using_kaminari, page: { number: 3, size: 1 }, teste: 'additional'
103+
get :render_pagination_using_kaminari, params: { page: { number: 3, size: 1 }, teste: 'additional' }
104104
response = JSON.parse(@response.body)
105105
assert_equal expected_links, response['links']
106106
end
107107

108108
def test_array_without_pagination_links
109-
get :render_array_without_pagination_links, page: { number: 2, size: 1 }
109+
get :render_array_without_pagination_links, params: { page: { number: 2, size: 1 } }
110110
response = JSON.parse(@response.body)
111111
refute response.key? 'links'
112112
end

test/action_controller/serialization_scope_name_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def admin?
1212
class UserTestController < ActionController::Base
1313
protect_from_forgery
1414

15-
before_filter { request.format = :json }
15+
before_action { request.format = :json }
1616

1717
def current_user
1818
User.new(id: 1, name: 'Pete', admin: false)
@@ -43,7 +43,7 @@ class AdminUserTestController < ActionController::Base
4343
protect_from_forgery
4444

4545
serialization_scope :current_admin
46-
before_filter { request.format = :json }
46+
before_action { request.format = :json }
4747

4848
def current_admin
4949
User.new(id: 2, name: 'Bob', admin: true)

test/adapter/fragment_cache_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ class Serializer
44
module Adapter
55
class FragmentCacheTest < Minitest::Test
66
def setup
7+
super
78
@spam = Spam::UnrelatedLink.new(id: 'spam-id-1')
89
@author = Author.new(name: 'Joao M. D. Moura')
910
@role = Role.new(name: 'Great Author', description: nil)

test/fixtures/poro.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ def method_missing(meth, *args)
1616
end
1717
end
1818

19+
# required for ActiveModel::AttributeAssignment#_assign_attribute
20+
# in Rails 5
21+
def respond_to_missing?(method_name, _include_private = false)
22+
attributes.key?(method_name.to_s.tr('=', '').to_sym) || super
23+
end
24+
1925
def cache_key_with_digest
2026
"#{cache_key}/#{FILE_DIGEST}"
2127
end

0 commit comments

Comments
 (0)