2016-03-30 2 views
2

ich json_api Adapter bin mit und haben die Key-Transformation nicht explizit angegeben, daher meine App wird mit dem Schlüssel von json_api bereitgestellt Transformations die :dashed istKey Transformation nicht für active_model_serializers in Testumgebung arbeiten

Es ist eine Variable in mein Serializer mit dem Namen access_locked?. Unten ist der Code-Schnipsel der Serializer für die Admin-Modell enthält:

#app/serializers/admin_serializer.rb 
class AdminSerializer < ActiveModel::Serializer 
    attributes :id, :email, :access_locked? 
end 

In Entwicklungsumgebung, ich bin der Wert im Admin-json als access-locked? richtig bekommen, also underscore_ von hyphen-

Aber mein rspec ersetzt Testfall versagt, weil die serialisierten Admin enthält access_locked? statt access-locked?

ActiveModelSerializers.config.key_transform = :unaltered beide versucht, mit in test.rb und active_model_serializers.rb aber ohne Erfolg.

gem Version ist gem 'active_model_serializers', '0.10.0rc4' Hier ist die fehlerhafte 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 

Antwort

0

den Edelstein Spitz zu beherrschen und es fixiert dies:

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

wahrscheinlich an dieser Stelle gelöst, aber nur für den Fall. ..Ich denke, dass Sie ActiveModelSerializers.config.key_transform = :dash statt :unaltered

verwenden möchten
Verwandte Themen