# frozen_string_literal: true require 'spec_helper' module RailsBestPractices module Prepares describe SchemaPrepare do let(:runner) { Core::Runner.new(prepares: described_class.new) } it 'parses model attributes' do content = <<-EOF ActiveRecord::Schema.define(version: 20110319172136) do create_table "posts", force: true do |t| t.string "title" t.text "body", limit: 16777215 t.datetime "created_at" t.integer "user_id" t.integer "comments_count", default: 0 t.boolean "published", default: false, null: false end end EOF runner.prepare('db/schema.rb', content) model_attributes = Prepares.model_attributes expect(model_attributes.get_attribute_type('Post', 'title')).to eq('string') expect(model_attributes.get_attribute_type('Post', 'body')).to eq('text') expect(model_attributes.get_attribute_type('Post', 'created_at')).to eq('datetime') expect(model_attributes.get_attribute_type('Post', 'user_id')).to eq('integer') expect(model_attributes.get_attribute_type('Post', 'comments_count')).to eq('integer') expect(model_attributes.get_attribute_type('Post', 'published')).to eq('boolean') end end end end