Skip to content

Commit

Permalink
Basic mongoid integration spec
Browse files Browse the repository at this point in the history
  • Loading branch information
haines committed Jan 21, 2013
1 parent 4d0181f commit 8b01503
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 10 deletions.
6 changes: 6 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,16 @@ end
case ENV["RAILS_VERSION"]
when "master"
gem "rails", github: "rails/rails"
gem "mongoid", github: "mongoid/mongoid", branch: "4.0.0-dev"

when "3.2", nil
gem "rails", "~> 3.2.0"
gem "mongoid", "~> 3.0.0"

when "3.1"
gem "rails", "~> 3.1.0"
gem "mongoid", "~> 3.0.0"

when "3.0"
gem "rails", "~> 3.0.0"
end
5 changes: 5 additions & 0 deletions spec/dummy/app/models/mongoid_post.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if defined?(Mongoid)
class MongoidPost
include Mongoid::Document
end
end
5 changes: 2 additions & 3 deletions spec/dummy/config/application.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
require File.expand_path('../boot', __FILE__)

require 'rails/all'

Bundler.require
require "draper"
require 'draper'
require 'mongoid' if Rails.version.to_f >= 3.1

module Dummy
class Application < Rails::Application
Expand Down
9 changes: 2 additions & 7 deletions spec/dummy/config/boot.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
require 'rubygems'
gemfile = File.expand_path('../../../../Gemfile', __FILE__)

if File.exist?(gemfile)
ENV['BUNDLE_GEMFILE'] = gemfile
require 'bundler'
Bundler.setup
end
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)

$:.unshift File.expand_path('../../../../lib', __FILE__)
require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
80 changes: 80 additions & 0 deletions spec/dummy/config/mongoid.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
development:
# Configure available database sessions. (required)
sessions:
# Defines the default session. (required)
default:
# Defines the name of the default database that Mongoid can connect to.
# (required).
database: dummy_development
# Provides the hosts the default session can connect to. Must be an array
# of host:port pairs. (required)
hosts:
- localhost:27017
options:
# Change whether the session persists in safe mode by default.
# (default: false)
# safe: false

# Change the default consistency model to :eventual or :strong.
# :eventual will send reads to secondaries, :strong sends everything
# to master. (default: :eventual)
# consistency: :eventual

# How many times Moped should attempt to retry an operation after
# failure. (default: 30)
# max_retries: 30

# The time in seconds that Moped should wait before retrying an
# operation on failure. (default: 1)
# retry_interval: 1
# Configure Mongoid specific options. (optional)
options:
# Configuration for whether or not to allow access to fields that do
# not have a field definition on the model. (default: true)
# allow_dynamic_fields: true

# Enable the identity map, needed for eager loading. (default: false)
# identity_map_enabled: false

# Includes the root model name in json serialization. (default: false)
# include_root_in_json: false

# Include the _type field in serializaion. (default: false)
# include_type_for_serialization: false

# Preload all models in development, needed when models use
# inheritance. (default: false)
# preload_models: false

# Protect id and type from mass assignment. (default: true)
# protect_sensitive_fields: true

# Raise an error when performing a #find and the document is not found.
# (default: true)
# raise_not_found_error: true

# Raise an error when defining a scope with the same name as an
# existing method. (default: false)
# scope_overwrite_exception: false

# Skip the database version check, used when connecting to a db without
# admin access. (default: false)
# skip_version_check: false

# User Active Support's time zone in conversions. (default: true)
# use_activesupport_time_zone: true

# Ensure all times are UTC in the app side. (default: false)
# use_utc: false
test:
sessions:
default:
database: dummy_test
hosts:
- localhost:27017
options:
consistency: :strong
# In the test environment we lower the retries and retry interval to
# low amounts for fast failures.
max_retries: 1
retry_interval: 0
10 changes: 10 additions & 0 deletions spec/dummy/spec/models/mongoid_post_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
require 'spec_helper'

if defined?(Mongoid)
describe MongoidPost do
it "is decoratable" do
expect(MongoidPost).to respond_to :decorator_class
expect(MongoidPost.new).to respond_to :decorate
end
end
end

0 comments on commit 8b01503

Please sign in to comment.