spec/integration/preview_spec.rb in alephant-preview-0.5.3 vs spec/integration/preview_spec.rb in alephant-preview-0.6.0

- old
+ new

@@ -1,301 +1,301 @@ -require "spec_helper" +require 'spec_helper' describe Alephant::Preview::Server do include Rack::Test::Methods let (:app) { subject } - describe "preview endpoint (GET /preview/{id}/{template}/{region}/{fixture})" do - describe "content" do - expected_time = "123456789" + describe 'preview endpoint (GET /preview/{id}/{template}/{region}/{fixture})' do + describe 'content' do + expected_time = '123456789' - context "with valid data" do + context 'with valid data' do before(:each) do allow(Time).to receive(:now).and_return(expected_time) get "/preview/#{id}/#{template}/#{region}/#{fixture}" end - let (:id) { "foo" } + let (:id) { 'foo' } let (:template) { id } let (:fixture) { id } - let (:region) { "page_region" } + let (:region) { 'page_region' } - it "should return correct response" do + it 'should return correct response' do expect(last_response.body).to eq(%(top{"content":"as json"}bottom\n)) end expected_headers = { - "Content-Type" => "application/json", - "Access-Control-Allow-Origin" => "*", - "X-Sequence" => expected_time, - "Content-Length" => "31" + 'Content-Type' => 'application/json', + 'Access-Control-Allow-Origin' => '*', + 'X-Sequence' => expected_time, + 'Content-Length' => '31' } - it "should have correct response headers" do + it 'should have correct response headers' do expect(last_response.headers).to include(expected_headers) end end end end - describe "component endpoint (GET /component/{id}/{template}/{fixture})" do - describe "content" do - expected_time = "123456789" + describe 'component endpoint (GET /component/{id}/{template}/{fixture})' do + describe 'content' do + expected_time = '123456789' before(:each) do allow(Time).to receive(:now).and_return(expected_time) get "/component/#{id}/#{template}/#{fixture}" end let (:response) { last_response.body.chomp } - context "without a data mapper" do - let (:id) { "foo" } + context 'without a data mapper' do + let (:id) { 'foo' } let (:template) { id } let (:fixture) { id } - it "should return correct response" do + it 'should return correct response' do expect(response).to eq(%({"content":"as json"})) end expected_headers = { - "Content-Type" => "application/json", - "Access-Control-Allow-Origin" => "*", - "X-Sequence" => expected_time, - "Content-Length" => "21" + 'Content-Type' => 'application/json', + 'Access-Control-Allow-Origin' => '*', + 'X-Sequence' => expected_time, + 'Content-Length' => '21' } - it "should have correct response headers" do + it 'should have correct response headers' do expect(last_response.headers).to include(expected_headers) end end - context "with a data mapper" do - context "using a single fixture" do - let (:id) { "bar" } + context 'with a data mapper' do + context 'using a single fixture' do + let (:id) { 'bar' } let (:template) { id } let (:fixture) { id } - it "should return data mapped content" do - expect(response).to eq("data mapped content") + it 'should return data mapped content' do + expect(response).to eq('data mapped content') end expected_headers = { - "Content-Type" => "text/html", - "Access-Control-Allow-Origin" => "*", - "X-Sequence" => expected_time, - "Content-Length" => "20" + 'Content-Type' => 'text/html', + 'Access-Control-Allow-Origin' => '*', + 'X-Sequence' => expected_time, + 'Content-Length' => '20' } - it "should have correct response headers" do + it 'should have correct response headers' do expect(last_response.headers).to include(expected_headers) end end - context "using multiple fixtures" do - let (:id) { "baz" } + context 'using multiple fixtures' do + let (:id) { 'baz' } let (:template) { id } let (:fixture) { id } - it "should return multiple mapped content" do - expect(response).to eq("multiple endpoint data mapped content") + it 'should return multiple mapped content' do + expect(response).to eq('multiple endpoint data mapped content') end expected_headers = { - "Content-Type" => "text/html", - "Access-Control-Allow-Origin" => "*", - "X-Sequence" => expected_time, - "Content-Length" => "38" + 'Content-Type' => 'text/html', + 'Access-Control-Allow-Origin' => '*', + 'X-Sequence' => expected_time, + 'Content-Length' => '38' } - it "should have correct response headers" do + it 'should have correct response headers' do expect(last_response.headers).to include(expected_headers) end end end end end describe 'component batch endpoint (GET /components/batch?components[#{id}]=#{id})' do - describe "content" do - expected_time = "123456789" + describe 'content' do + expected_time = '123456789' before(:each) do allow(Time).to receive(:now).and_return(expected_time) get "/components/batch?components[#{id}][component]=#{id}&components[#{id}][options][fixture]=#{id}" end - let (:response) { JSON.parse(last_response.body.chomp, :symbolize_names => true) } + let (:response) { JSON.parse(last_response.body.chomp, symbolize_names: true) } - context "without a data mapper" do - let (:id) { "foo" } + context 'without a data mapper' do + let (:id) { 'foo' } let (:template) { id } let (:fixture) { id } expected = { - :components => [ + components: [ { - :component => "foo", - :options => {}, - :status => 200, - :body => %({"content":"as json"}), - :content_type => "application/json", - :sequence_id => expected_time + component: 'foo', + options: {}, + status: 200, + body: %({"content":"as json"}), + content_type: 'application/json', + sequence_id: expected_time } ] } - it "should return correct response" do + it 'should return correct response' do expect(response).to eq(expected) end end - context "with a data mapper" do - context "using a single fixture" do - let (:id) { "bar" } + context 'with a data mapper' do + context 'using a single fixture' do + let (:id) { 'bar' } let (:template) { id } let (:fixture) { id } expected = { - :components => [ + components: [ { - :component => "bar", - :options => {}, - :status => 200, - :body => "data mapped content\n", - :content_type => "text/html", - :sequence_id => expected_time + component: 'bar', + options: {}, + status: 200, + body: "data mapped content\n", + content_type: 'text/html', + sequence_id: expected_time } ] } - it "should return correct response" do + it 'should return correct response' do expect(response).to eq(expected) end end - context "using multiple fixtures" do - let (:id) { "baz" } + context 'using multiple fixtures' do + let (:id) { 'baz' } let (:template) { id } let (:fixture) { id } expected = { - :components => [ + components: [ { - :component => "baz", - :options => {}, - :status => 200, - :body => "multiple endpoint data mapped content\n", - :content_type => "text/html", - :sequence_id => expected_time + component: 'baz', + options: {}, + status: 200, + body: "multiple endpoint data mapped content\n", + content_type: 'text/html', + sequence_id: expected_time } ] } - it "should return correct response" do + it 'should return correct response' do expect(response).to eq(expected) end end end end end - describe "component batch endpoint (POST /components/batch" do - describe "content" do - expected_time = "123456789" + describe 'component batch endpoint (POST /components/batch' do + describe 'content' do + expected_time = '123456789' before(:each) do allow(Time).to receive(:now).and_return(expected_time) - post "/components/batch", { - :components => [ + post '/components/batch', { + components: [ { - :component => id, - :options => { - :fixture => id + component: id, + options: { + fixture: id } } ] }.to_json end - let (:response) { JSON.parse(last_response.body.chomp, :symbolize_names => true) } + let (:response) { JSON.parse(last_response.body.chomp, symbolize_names: true) } - context "without a data mapper" do - let(:id) { "foo" } + context 'without a data mapper' do + let(:id) { 'foo' } expected = { - :components => [ + components: [ { - :component => "foo", - :options => {}, - :status => 200, - :body => %({"content":"as json"}), - :content_type => "application/json", - :sequence_id => expected_time + component: 'foo', + options: {}, + status: 200, + body: %({"content":"as json"}), + content_type: 'application/json', + sequence_id: expected_time } ] } - it "should return correct response" do + it 'should return correct response' do expect(response).to eq(expected) end end - context "with a data mapper" do - context "using a single fixture" do - let (:id) { "bar" } + context 'with a data mapper' do + context 'using a single fixture' do + let (:id) { 'bar' } expected = { - :components => [ + components: [ { - :component => "bar", - :options => {}, - :status => 200, - :body => "data mapped content\n", - :content_type => "text/html", - :sequence_id => expected_time + component: 'bar', + options: {}, + status: 200, + body: "data mapped content\n", + content_type: 'text/html', + sequence_id: expected_time } ] } - it "should return correct response" do + it 'should return correct response' do expect(response).to eq(expected) end end - context "using multiple fixtures" do - let (:id) { "baz" } + context 'using multiple fixtures' do + let (:id) { 'baz' } expected = { - :components => [ + components: [ { - :component => "baz", - :options => {}, - :status => 200, - :body => "multiple endpoint data mapped content\n", - :content_type => "text/html", - :sequence_id => expected_time + component: 'baz', + options: {}, + status: 200, + body: "multiple endpoint data mapped content\n", + content_type: 'text/html', + sequence_id: expected_time } ] } - it "should return correct response" do + it 'should return correct response' do expect(response).to eq(expected) end end end end end - describe "status endpoint (GET /status)" do + describe 'status endpoint (GET /status)' do before(:each) do - get "/status" + get '/status' end - context "status code" do - it "should return ok status code" do + context 'status code' do + it 'should return ok status code' do expect(last_response.status).to eq(200) end end end end