Sha256: c199cdb330afbad65f6703bf5e5db1ee7e80cc6c0486925f2108837267dd9f94

Contents?: true

Size: 870 Bytes

Versions: 5

Compression:

Stored size: 870 Bytes

Contents

require 'friendly_id'

RSpec.describe Adminos::Slugged, type: :model do

  let(:mock_class) { build_mock_class }

  before(:all) { create_table }
  after(:all) { drop_table }

  describe 'if_blank_set_to_nil_params' do
    let!(:record) { build_mock_class.create(name: "test/new/string") }

    it { expect(build_mock_class).to respond_to(:slugged) }
    it { expect(record.slug).to eq 'test-new-string' }
  end

  def build_mock_class
    @build_mock_class ||= Class.new(ActiveRecord::Base) do
      include Adminos::Slugged

      slugged :name

      self.table_name = 'mock_table'
      reset_column_information

      def self.name
        'MockTable'
      end
    end
  end

  def create_table
    build_mock_class.reset_column_information

    ActiveRecord::Base.connection.create_table :mock_table do |t|
      t.text :name
      t.text :slug
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
adminos-1.0.0.pre.rc.5 spec/lib/adminos/helpers/models/slugged.rb
adminos-1.0.0.pre.rc.4 spec/lib/adminos/helpers/models/slugged.rb
adminos-1.0.0.pre.rc.3 spec/lib/adminos/helpers/models/slugged.rb
adminos-1.0.0.pre.rc.2 spec/lib/adminos/helpers/models/slugged.rb
adminos-1.0.0.pre.rc.1 spec/lib/adminos/helpers/models/slugged.rb