A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Listar y mostrar Post: implementaci贸n

12/33
Recursos

Aportes 8

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Una prueba muy importante tambien seria que si el post no existe pues debe retornar un 404.

    it "should return 404 if post not exists" do
      get "/posts/0"

      expect(response).to have_http_status(404)
    end

Respecto a la prueba para el detalle de los posts, not茅 que us贸 鈥渢o_not鈥 en lugar de 鈥渘ot_to鈥 para comprobar que el payload no est茅 vac铆o.

Investigu茅 un poco, y por lo que entiendo, ambos son iguales, pero para mantener la consistencia con la documentaci贸n de RSpec deber铆amos usar 鈥渘ot_to鈥

Info extra

Lo mejor de este curso es que cada error que la app esta generando, el profesor lo explica y nos muestra como solucionar cada uno hasta que ya no hay errores. Me gusta mucho la metodolog铆a del curso.

Finished in 0.54352 seconds (files took 1.33 seconds to load)
8 examples, 0 failures

Un aporte peque帽o tambi茅n es posible filtrar con el par谩metro -c y el nombre de los que estamos buscando, en el ejemplo de la clase seria:

rails routes -c post

y todo lo que tenga la palabra post aparecer谩 listado.
nunca pares de aprende, practicar y compartir 馃槂

Rails tambi茅n ofrece una interfaz en la que se pueden explorar las rutas.
En el navegador se puede ir a localhost:3000/rails/info/routes

no necesitamos las variables @posts en el controlador con utilizar post ser铆a suficiente, las variables con @ las utilizamos para contextos globales o si las vamos a llamar desde las vistas pero como esto es una api no lo necesitamos

configuraci贸n para byedebug en las nuevas versiones de rails:

gem 鈥榖yebug鈥, platforms: [:mri, :mingw, :x64_mingw]

https://stackoverflow.com/questions/33829440/undefined-method-create-in-rails-rspec/44478404#44478404

Pensando que es importante que se muestren solamente los posts que tienen permiso de ser publicados, modifiqu茅 la definici贸n de posts y agregu茅 este test:

describe 'with data in the DB' do
  let!(:posts) { create_list(:post, 100) }
  before { get '/posts' }

  it 'should return all the published posts' do
    payload = JSON.parse(response.body)
    published_posts = posts.select(&:published)
    expect(payload.size).to eq(published_posts.size)
    expect(response).to have_http_status(200)
  end

  it "shouldn't return any unpublished post" do
    payload = JSON.parse(response.body)
    unpublished_post_ids = posts.reject(&:published).pluck(:id)

    payload.pluck('id').each do |published_post_id|
      expect(unpublished_post_ids).not_to include(published_post_id)
    end

    expect(response).to have_http_status(200)
  end
end