Sha256: 80041a8d1a1b30f7975c3ef40c304695ae1a30bf4bd87009a12baaf18db888a5

Contents?: true

Size: 1.48 KB

Versions: 8

Compression:

Stored size: 1.48 KB

Contents

require 'spec_helper'

describe Locomotive::Steam::APIEntrySubmissionService do

  let(:site)          { create(:site) }
  let(:steam_service) { instance_double('SteamContentEntryService', locale: 'en') }
  let(:request_env)   { instance_double('RequestEnv') }
  let(:request)       { instance_double('Request', ip: '127.0.0.1', env: request_env) }
  let(:enabled)       { true }
  let!(:content_type) { create('message content type', site: site, public_submission_enabled: enabled).reload }
  let(:service)       { described_class.new(steam_service, request) }

  describe '#submit' do

    before { expect(request_env).to receive(:[]).with('locomotive.site').and_return(site) }

    let(:attributes) { { 'name' => 'John Doe', 'message' => 'Hello' } }

    subject { service.submit(content_type.slug, attributes) }

    it { expect { subject }.to change { content_type.entries.count } }

    it 'returns a content entry' do
      expect(subject.name).to eq 'John Doe'
      expect(subject.message).to eq 'Hello'
    end

    context 'no public submission allowed' do

      let(:enabled) { false }

      it { expect(subject).to eq nil }

    end

  end #

  describe '#to_json' do

    let(:entry) { content_type.entries.build(_id: 42, name: 'John Doe', message: 'Hello') }

    subject { service.to_json(entry) }

    it 'includes _id and fields' do
      expect(subject).to match('"_id":42')
      expect(subject).to match('"name":"John Doe"')
      expect(subject).to match('"message":"Hello"')
    end

  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
locomotivecms-3.3.0 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.3.0.rc3 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.3.0.rc2 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.2.1 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.3.0.rc1 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.2.0 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.2.0.rc2 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.2.0.rc1 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb