Sha256: 7b25036f6952a887824e394efb9e9f5b6610b486e61c7a1ae3a47e9478c9609d

Contents?: true

Size: 1.86 KB

Versions: 5

Compression:

Stored size: 1.86 KB

Contents

require "rails_helper"

describe PaperTrail do
  context "default" do
    it "should have versioning off by default" do
      expect(PaperTrail).not_to be_enabled
    end

    it "should turn versioning on in a `with_versioning` block" do
      expect(PaperTrail).not_to be_enabled
      with_versioning do
        expect(PaperTrail).to be_enabled
      end
      expect(PaperTrail).not_to be_enabled
    end

    context "error within `with_versioning` block" do
      it "should revert the value of `PaperTrail.enabled?` to it's previous state" do
        expect(PaperTrail).not_to be_enabled
        expect { with_versioning { raise } }.to raise_error(RuntimeError)
        expect(PaperTrail).not_to be_enabled
      end
    end
  end

  context "`versioning: true`", versioning: true do
    it "should have versioning on by default" do
      expect(PaperTrail).to be_enabled
    end

    it "should keep versioning on after a with_versioning block" do
      expect(PaperTrail).to be_enabled
      with_versioning do
        expect(PaperTrail).to be_enabled
      end
      expect(PaperTrail).to be_enabled
    end
  end

  context "`with_versioning` block at class level" do
    it { expect(PaperTrail).not_to be_enabled }

    with_versioning do
      it "should have versioning on by default" do
        expect(PaperTrail).to be_enabled
      end
    end
    it "should not leak the `enabled?` state into successive tests" do
      expect(PaperTrail).not_to be_enabled
    end
  end

  describe :whodunnit do
    before(:all) { PaperTrail.whodunnit = "foobar" }

    it "should get set to `nil` by default" do
      expect(PaperTrail.whodunnit).to be_nil
    end
  end

  describe :controller_info do
    before(:all) { ::PaperTrail.controller_info = { foo: "bar" } }

    it "should get set to an empty hash before each test" do
      expect(PaperTrail.controller_info).to eq({})
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
paper_trail-5.2.0 spec/paper_trail_spec.rb
paper_trail-5.1.1 spec/paper_trail_spec.rb
paper_trail-5.1.0 spec/paper_trail_spec.rb
paper_trail-5.0.1 spec/paper_trail_spec.rb
paper_trail-5.0.0 spec/paper_trail_spec.rb