Sha256: 155bec491c199382528f056990904ef4cf5a483348a590e4e022ef1ba1eadb6a

Contents?: true

Size: 1.67 KB

Versions: 6

Compression:

Stored size: 1.67 KB

Contents

require 'generators/rom/relation_generator'

RSpec.describe ROM::Generators::RelationGenerator, type: :generator do
  destination File.expand_path('../../../tmp', __dir__)

  before(:each) do
    prepare_destination
  end

  specify do
    run_generator ['users']
    default_adapter = ROM.env.gateways[:default].adapter

    expect(destination_root).to have_structure {
      directory 'app' do
        directory 'relations' do
          file 'users_relation.rb' do
            contains <<-CONTENT.strip_heredoc
              class UsersRelation < ROM::Relation[:#{default_adapter}]
                gateway :default

                schema(:users, infer: true)

                # define your methods here ie:
                #
                # def all
                #   select(:id, :name).order(:id)
                # end
              end
            CONTENT
          end
        end
      end
    }
  end

  specify "with given adapter" do
    run_generator ['users', '--adapter=memory']

    relation = File.read(File.join(destination_root, 'app', 'relations', 'users_relation.rb'))
    expect(relation).to include("class UsersRelation < ROM::Relation[:memory]")
  end

  specify "with given gateway" do
    run_generator ['users', '--gateway=remote']

    relation = File.read(File.join(destination_root, 'app', 'relations', 'users_relation.rb'))
    expect(relation).to include("gateway :remote")
  end

  specify "with given registration" do
    run_generator ['users', '--register=profiles']

    relation = File.read(File.join(destination_root, 'app', 'relations', 'users_relation.rb'))
    expect(relation).to match(/schema.*as: :profiles/)
  end

  specify "with multiple generators" do
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rom-rails-2.4.0 spec/lib/generators/relation_generator_spec.rb
rom-rails-2.3.1 spec/lib/generators/relation_generator_spec.rb
rom-rails-2.3.0 spec/lib/generators/relation_generator_spec.rb
rom-rails-2.2.0 spec/lib/generators/relation_generator_spec.rb
rom-rails-2.0.0 spec/lib/generators/relation_generator_spec.rb
rom-rails-1.2.0 spec/lib/generators/relation_generator_spec.rb