Skip to content

Latest commit

 

History

History
74 lines (50 loc) · 2.1 KB

README.md

File metadata and controls

74 lines (50 loc) · 2.1 KB

Neo4j::Rspec Build Status

This gem contains of several testing one-liners for neo4j gem.

Install

Add line into your Gemfile:

gem "neo4j-rspec"

or install it directly

gem install neo4j-rspec

Then configure it in your spec_helper (or rails_helper):

RSpec.configure do |config|
  config.include Neo4j::RSpec::Matchers
  # ... other configuration ...
end

Examples

ActiveNode matchers:

  • Properties

      it { is_expected.to define_property :general }
      it { is_expected.to define_property :string, :String }
      it { is_expected.to define_property :boolean, :Boolean }
      it { is_expected.to define_property :boolean, :'Neo4j::Shared::Boolean' }
    
  • Relationships

      it { is_expected.to have_many(:comments) }
      it { is_expected.to have_many(:comments).with_direction(:in) }
      it { is_expected.to have_many(:comments).with_direction(:in).with_origin(:post) }
      it { is_expected.to have_many(:written_things).with_direction(:in).without_type.with_model_class([:Post, :Comment]) }
    
  • Constraints

      it { is_expected.to define_constraint :name, :unique }
    
  • Indexes

      # DEPRECATED!  Newer version of the `neo4j` gem no longer support defining indexes on the model
      it { is_expected.to define_index(:index_name) }
    
  • Tracking

      it { is_expected.to track_creations } # `created_at`
      it { is_expected.to track_modifications } # `updated_at`
    

ActiveRel matchers:

  • Directions

      it { is_expected.to come_from(:Person) }
      it { is_expected.to lead_to(:any) }
    
  • Types

      it { is_expected.to have_relationship_type("WROTE") }
    
  • Create Unique

      it { is_expected.to use_create_unique }
      it { is_expected.to use_create_unique(:all) }
      it { is_expected.to use_create_unique(on: [:key1, :key2]) }
    

Need yet another matcher?

Welcome! Feel free to post an issue. Contributions are welcome too.