Я использую json_api
адаптер и не указали ключ преобразования в явном виде, следовательно, мое приложение использует ключ преобразования обеспечивается json_api
которая :dashed
Ключ преобразования не работает в тестовой среде для active_model_serializers
Существует переменная в мой сериализатор по имени access_locked?
. Ниже приведен фрагмент кода, содержащий сериалайзер для администратора модели:
#app/serializers/admin_serializer.rb
class AdminSerializer < ActiveModel::Serializer
attributes :id, :email, :access_locked?
end
В среде разработки, я правильно получать значение в админ JSON, как access-locked?
, т.е. заменяемого нижней черты на hyphen-
Но мой RSpec тест терпит неудача, потому что сериализованные админы содержат access_locked?
вместо access-locked?
Пробовали с помощью ActiveModelSerializers.config.key_transform = :unaltered
в обоих test.rb
и active_model_serializers.rb
, но без успеха.
камень версия gem 'active_model_serializers', '0.10.0rc4'
Вот неисправной RSpec:
#features/dashboard/admins/admins_index_spec.rb
scenario 'admin sees all other admins', :js => true do
signin_admin(@admin.email, @admin.password)
expect(page).to have_content I18n.t 'devise.sessions.signed_in'
click_link 'Settings'
click_link 'Admins'
expect(page).to have_content @admin.email
expect(page).to have_content @admin1.email
expect(page).to have_content @admin2.email
expect(page).to have_selector('#admin-row-1 .glyphicon-ban-circle')
#TODO failing because of http://stackoverflow.com/questions/36312019/key-transform-not-working-in-test-environment-for-active-model-serializers
expect(page).to have_selector('#admin-row-2 .glyphicon-ok-circle')
expect(page).to have_selector('#admin-row-3 .glyphicon-ban-circle')
expect(page).to have_selector('#admin-row-1 .glyphicon-edit')
expect(page).to have_selector('#admin-row-3 .glyphicon-trash')
find('#admin-row-3 .glyphicon-edit').click
expect(page).to have_selector('#admin-row-3 .glyphicon-check')
expect(page).to have_selector('#admin-row-3 .glyphicon-remove')
find('#admin-row-3 .glyphicon-check').click
expect(page).to have_selector('#admin-row-3 .glyphicon-trash')
find('#admin-row-1 .glyphicon-ban-circle').click
expect(page).to have_css('.modal', text: 'Lock Admin?')
find('.btn-primary.confirm').click
expect(page).to have_content "Can't lock yourself."
find('#admin-row-2 .glyphicon-ok-circle').click
expect(page).to have_css('.modal', text: 'Unlock Admin?')
find('.btn-primary.confirm').click
expect(page).to have_selector('#admin-row-2 .glyphicon-ban-circle')
end