¿Por qué no está el rack-cors filtrando solicitudes entrantes, según Rspec?

Me gustaría mi aplicación Rails 5 solo para API, por ahora ejecutándose enhttp://localhost:3000, para aceptar solo solicitudes de mi aplicación front-end NodeJS, por ahora ejecutándose enhttp://localhost:8888.

Entonces configuré/config/initializers/cors.rb Me gusta esto:

Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins "http://localhost:8888"
    resource "*",
      headers: :any,
      methods: [:get, :post, :put, :patch, :delete, :options, :head]
  end
end

Y escribí esta prueba:

#/spec/request/cors_request_spec.rb

RSpec.feature "CORS protection", type: :request do
  it "should accept a request from a whitelisted domain" do
    get "/api/v1/bodies.json", nil, "HTTP_ORIGIN": "http://localhost:8888"
    expect(response.status).to eql(200)
  end
  it "should reject a request from a non-whitelisted domain" do
    get "/api/v1/bodies.json", nil, "HTTP_ORIGIN": "https://foreign.domain"
    expect(response.status).to eql(406)
  end
end

La primera prueba está pasando como se esperaba. Pero el segundo falla con un código de respuesta de 200. ¿Por qué?

(Por cierto, no estoy casado con un código de respuesta 406; solo uno que indique que la solicitud no se cumplirá).

Respuestas a la pregunta(1)

Su respuesta a la pregunta