Sha256: 261018f2d96c663aced2632e39e881063b6b66e45ac72753d37b9d3d190c5446

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 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'
      expect(active_version.post.preview_version.status).to eq 'preview'
      expect(version.post.preview_version.id).not_to eq old_preview.id
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pulitzer-0.5.6 spec/controllers/pulitzer/versions_controller_spec.rb