2016-03-30 3 views
2

Я использую 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 

ответ

0

Указал камень освоить и исправил:

gem 'active_model_serializers', github: 'rails-api/active_model_serializers', branch: :master 
1

Скорее всего решается на данный момент, но только в том случае. .. Я думаю, вы хотите использовать ActiveModelSerializers.config.key_transform = :dash, а не :unaltered