Sha256: d5b37002bb7dd446167f12e60ea80359987340094a8e00477ab223c7246b6d67

Contents?: true

Size: 1.39 KB

Versions: 2

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true
require 'spec_helper'

describe ActiveEncode::GlobalID do
  before do
    class CustomEncode < ActiveEncode::Base
    end
  end

  after do
    Object.send(:remove_const, :CustomEncode)
  end

  describe '#to_global_id' do
    subject { encode.to_global_id }
    let(:encode_class) { ActiveEncode::Base }
    let(:encode) { encode_class.create(nil) }

    it { is_expected.to be_a GlobalID }
    its(:model_class) { is_expected.to eq encode_class }
    its(:model_id) { is_expected.to eq encode.id }
    its(:app) { is_expected.to eq 'ActiveEncode' }

    context 'with an ActiveEncode::Base subclass' do
      let(:encode_class) { CustomEncode }

      it { is_expected.to be_a GlobalID }
      its(:model_class) { is_expected.to eq encode_class }
      its(:model_id) { is_expected.to eq encode.id }
      its(:app) { is_expected.to eq 'ActiveEncode' }
    end
  end

  describe 'GlobalID::Locator#locate' do
    subject { GlobalID::Locator.locate(global_id) }
    let(:encode_class) { ActiveEncode::Base }
    let(:encode) { encode_class.create(nil) }
    let(:global_id) { encode.to_global_id }

    it { is_expected.to be_a encode_class }
    its(:id) { is_expected.to eq encode.id }

    context 'with an ActiveEncode::Base subclass' do
      let(:encode_class) { CustomEncode }

      it { is_expected.to be_a encode_class }
      its(:id) { is_expected.to eq encode.id }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_encode-0.7.0 spec/units/global_id_spec.rb
active_encode-0.6.0 spec/units/global_id_spec.rb