Sha256: 40dba771007ae5d2876022e2719ee7a9d804621f3482092b7f52b2c00beee296

Contents?: true

Size: 1.83 KB

Versions: 13

Compression:

Stored size: 1.83 KB

Contents

require 'rails_helper'

RSpec.describe 'rake rails_rbi:models', type: :task do
  let!(:generated_dir_path) { Rails.root.join("sorbet", "rails-rbi", "models") }

  it "preloads the Rails environment" do
    expect(task.prerequisites).to include("environment")
  end

  it "generates model files correctly" do
    task.invoke
    expect_files(
      base_dir: generated_dir_path,
      files: [
        'headmaster.rbi',
        'potion.rbi',
        'robe.rbi',
        'school.rbi',
        'spell.rbi',
        'spell/habtm_spell_books.rbi',
        'spell_book.rbi',
        'spell_book/habtm_spells.rbi',
        'squib.rbi',
        'subject.rbi',
        'subject/habtm_wizards.rbi',
        'wand.rbi',
        'wizard.rbi',
        'wizard/habtm_subjects.rbi',
      ]
    )
    if Object.const_defined?('ActiveStorage')
      files = [
        'attachment.rbi',
        'blob.rbi',
      ]
      if ENV["RAILS_VERSION"] == '6.1'
        files += [
          'record.rbi',
          'variant_record.rbi',
        ]
      end
      expect_files(
        base_dir: generated_dir_path.join('active_storage'),
        files: files,
      )
    end
    if Object.const_defined?('ActiveRecord::InternalMetadata')
      expect_files(
        base_dir: generated_dir_path.join('active_record'),
        files: [
          'internal_metadata.rbi',
          'schema_migration.rbi',
        ]
      )
    end
  end

  it 'generates selected model correctly' do
    task.invoke("Wizard")
    expect_files(
      base_dir: generated_dir_path,
      files: [
        'squib.rbi',
        'wizard.rbi',
      ]
    )
  end

  it 'generates more than 1 selected models correctly' do
    task.invoke("Wizard", "SpellBook")
    expect_files(
      base_dir: generated_dir_path,
      files: [
        'spell_book.rbi',
        'squib.rbi',
        'wizard.rbi',
      ]
    )
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
sorbet-rails-0.7.33 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.32 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.31 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.27 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.26 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.25 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.24 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.23 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.22 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.20 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.19 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.18 spec/rake_rails_rbi_models_spec.rb
sorbet-rails-0.7.5 spec/rake_rails_rbi_models_spec.rb