File: touch_spec.rb

package info (click to toggle)
ruby-paper-trail 12.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,200 kB
  • sloc: ruby: 6,743; makefile: 6
file content (39 lines) | stat: -rw-r--r-- 1,039 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# frozen_string_literal: true

require "spec_helper"
require_dependency "on/create"

module On
  RSpec.describe Touch, type: :model, versioning: true do
    describe "#create" do
      it "does not create a version" do
        record = described_class.create(name: "Alice")
        expect(record.versions.count).to eq(0)
      end
    end

    describe "#touch" do
      it "creates a version" do
        record = described_class.create(name: "Alice")
        expect { record.touch }.to(
          change { record.versions.count }.by(+1)
        )
        expect(record.versions.last.event).to eq("update")
      end

      it "saves a object" do
        record = described_class.create(name: "Alice")
        record.touch
        expect(record.versions.last.reify.name).to eq("Alice")
      end
    end

    describe "#update" do
      it "does not create a version" do
        record = described_class.create(name: "Alice")
        record.update(name: "Andrew")
        expect(record.versions.count).to eq(0)
      end
    end
  end
end