Sha256: 4363dcbbe6b270798724e365d958b1a717fa323c6d04a053c4c1997c18c9693d

Contents?: true

Size: 1.24 KB

Versions: 5

Compression:

Stored size: 1.24 KB

Contents

require 'spec_helper'

describe Locomotive::Steam::APIEntrySubmissionService do

  let(:site)          { create(:site) }
  let(:locale)        { :en }
  let(:enabled)       { true }
  let(:ip_address)    { '127.0.0.1' }
  let!(:content_type) { create('message content type', site: site, public_submission_enabled: enabled).reload }
  let(:service)       { described_class.new(site, locale, ip_address) }

  describe '#submit' do

    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

5 entries across 5 versions & 1 rubygems

Version Path
locomotivecms-3.1.2 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.1.1 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.1.0 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.1.0.rc3 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb
locomotivecms-3.1.0.rc2 spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb