Tengo un controlador de grupos con un método def inbox.
¿Cómo creo una prueba de rspec que valida una respuesta JSON?
Si el usuario es un miembro del grupo, entonces la bandeja de entrada devuelve un objeto JSON.
Si el usuario no es miembro, entonces la bandeja de entrada debe redireccionar gracias a los permisos CanCan.
¿Cómo escribo un rspec para probar estos dos casos de uso?
especificación actual:
require 'spec_helper'
describe GroupsController do
include Devise::TestHelpers
before (:each) do
@user1 = Factory.create(:user)
@user1.confirm!
sign_in @user1
@group = Factory(:group)
@permission_user_1 = Factory.create(:permission, :user => @user1, :creator_id => @user1.id, :group => @group)
end
describe "GET inbox" do
it "should be successful" do
get inbox_group_path(@group.id), :format => :json
response.should be_success
end
end
end
Rutas:
inbox_group GET /groups/:id/inbox(.:format) {:controller=>"groups", :action=>"inbox"}
Rutas de archivos:
resources :groups do
member do
get 'vcard', 'inbox'
end
....
end
Gracias Intenté pero recibo un error: "Error/error: get: inbox,: format =>: json ActionController :: RoutingError: No coincide la ruta {: controller =>" groups ",: format => : JSON,: action => "bandeja de entrada"} # ./controllers/groups_controller_spec.rb:19 "Lo que es extraño teniendo en cuenta las rutas de rastrillo rendimientos: inbox_group GET /groups/:id/inbox(.:format) {: controlador = > "grupos",: acción => "bandeja de entrada"} – AnApprentice
intenta proporcionar la ruta para obtener con url_for - http://apidock.com/rails/ActionDispatch/Integration/RequestHelpers/get – Roman
¿Qué aspecto tendría? – AnApprentice