Sha256: 5ae069877247abd9e2550a88ff43eebb738b9505f4a4247b841f5cda34ed9c85

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

require 'spec_helper'
require 'support/time_machine/structure'

describe ChronoModel::TimeMachine do
  include ChronoTest::TimeMachine::Helpers

  history_methods = %w( valid_from valid_to recorded_at )
  current_methods = %w( as_of_time )

  context 'on history records' do
    let(:record) { $t.foo.history.first }

    (history_methods + current_methods).each do |attr|
      describe ['#', attr].join do
        subject { record.public_send(attr) }

        it { is_expected.to be_present }
        it { is_expected.to be_a(Time) }
        it { is_expected.to be_utc }
      end
    end
  end

  context 'on current records' do
    let(:record) { $t.foo }

    history_methods.each do |attr|
      describe ['#', attr].join do
        subject { record.public_send(attr) }

        it { expect { subject }.to raise_error(NoMethodError) }
      end
    end

    current_methods.each do |attr|
      describe ['#', attr].join do
        subject { record.public_send(attr) }

        it { is_expected.to be(nil) }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
chrono_model-1.2.2 spec/chrono_model/time_machine/timestamps_spec.rb
chrono_model-1.2.1 spec/chrono_model/time_machine/timestamps_spec.rb