Sha256: 5ef6464fa09d8ed7cddd3d78977d1d6a272e22229041c4a95d52cb222494f975

Contents?: true

Size: 1.91 KB

Versions: 5

Compression:

Stored size: 1.91 KB

Contents

require 'rails_helper'

describe Pulitzer::VersionsController do
  routes { Pulitzer::Engine.routes }
  render_views

  let(:version) {create(:version, :with_content_elements)}

  describe "updating versions" do
    it "abandons a post that was never published" do
      old_post_id = version.post.id
      patch :update, id: version.id, status: 'abandoned'
      expect(response.status).to eq 200
      expect(Pulitzer::Version.find_by(id: version.id)).to eq nil
      expect(Pulitzer::Post.find_by(id: old_post_id)).to eq nil
      expect(response.body).to match "hooch.ReloadPage"
    end

    it "abandons a post that was published" do
      Pulitzer::UpdateVersionStatus.new(version, 'active').call
      expect(version.status).to eq 'active'
      expect(version.post.active_version).not_to be_nil
      patch :update, id: version.id, status: 'abandoned'
      expect(response.status).to eq 200
      expect(version.reload.status).to eq 'abandoned'
      expect(version.post.active_version).to be_nil
    end

    it "abandons changes" do
      Pulitzer::UpdateVersionStatus.new(version, 'active').call
      active_version = version
      expect(active_version.status).to eq 'active'
      old_preview = version.post.preview_version
      patch :update, id: old_preview.id, status: 'abandoned'
      expect(response.status).to eq 200
      expect(active_version.reload.status).to eq 'active'
      expect(old_preview.reload.status).to eq 'abandoned'
    end

    it "responds with errors if the interaction has one" do
      ptcet = Pulitzer::PostTypeContentElementType.create(label: 'test', required: true)
      version.content_elements.first.update_columns(body: nil, post_type_content_element_type_id: ptcet.id)
      patch :update, id: version.id, status: 'active'
      expect(response.status).to eq 409
      expect(response.body).to match "It's not possible to activate a version without filling required content elements"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pulitzer-0.11.3 spec/controllers/pulitzer/versions_controller_spec.rb
pulitzer-0.11.2 spec/controllers/pulitzer/versions_controller_spec.rb
pulitzer-0.11.1 spec/controllers/pulitzer/versions_controller_spec.rb
pulitzer-0.11.0 spec/controllers/pulitzer/versions_controller_spec.rb
pulitzer-0.10.3 spec/controllers/pulitzer/versions_controller_spec.rb