mongoid-userstamps 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,30 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ require 'mongoid/userstamps/version'
4
+ require 'mongoid/userstamps/config'
5
+ require 'mongoid/userstamps/user'
6
+ require 'mongoid/userstamps/model'
7
+ require 'mongoid/userstamps/created'
8
+ require 'mongoid/userstamps/updated'
9
+ require 'mongoid/userstamps/deleted'
10
+ require 'mongoid/userstamps/railtie' if defined? Rails
11
+
12
+ module Mongoid
13
+ module Userstamps
14
+ extend ActiveSupport::Concern
15
+
16
+ include Created
17
+ include Updated
18
+
19
+ included do
20
+ if defined?(Mongoid::Paranoia) && self < Mongoid::Paranoia
21
+ include Deleted
22
+ end
23
+ end
24
+
25
+ def self.config
26
+ Mongoid::Userstamps::Config.module_eval(&Proc.new)
27
+ end
28
+ end
29
+ end
30
+
@@ -0,0 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ require 'mongoid/userstamps'
4
+
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path('../lib', __FILE__)
3
+
4
+ require 'mongoid/userstamps/version'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = 'mongoid-userstamps'
8
+ s.version = Mongoid::Userstamps::VERSION
9
+ s.authors = ['Geoffroy Planquart', 'Thomas Boerger', 'Johnny Shields', 'Bharat Gupta']
10
+ s.homepage = 'https://github.com/tbpro/mongoid_userstamp'
11
+ s.license = 'MIT'
12
+ s.summary = 'Userstamps for Mongoid'
13
+ s.description = 'Userstamps for creator and updater fields using Mongoid'
14
+ s.email = ['geoffroy@planquart.fr', 'tboerger@tbpro.de']
15
+
16
+ s.files = `git ls-files`.split($/)
17
+ s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
19
+ s.require_paths = ['lib']
20
+
21
+ s.post_install_message = File.read('UPGRADING') if File.exists?('UPGRADING')
22
+
23
+ s.add_dependency 'mongoid', '~> 4.0'
24
+ s.add_dependency 'activesupport', '~> 4.0'
25
+ end
26
+
@@ -0,0 +1,25 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'rubygems'
3
+ require 'ostruct'
4
+
5
+ $:.push File.expand_path('../../lib', __FILE__)
6
+
7
+ require 'active_support/all'
8
+ require 'mongoid'
9
+ require 'mongoid_userstamp'
10
+
11
+ %w(admin user book post).each do |file_name|
12
+ require "support/#{file_name}"
13
+ end
14
+
15
+ Mongoid.configure do |config|
16
+ config.connect_to 'mongoid_userstamp_test'
17
+ end
18
+
19
+ RSpec.configure do |config|
20
+ config.mock_with :rspec
21
+
22
+ config.after :suite do
23
+ Mongoid.purge!
24
+ end
25
+ end
@@ -0,0 +1,7 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class Admin
3
+ include Mongoid::Document
4
+ include Mongoid::Userstamp::User
5
+
6
+ field :name
7
+ end
@@ -0,0 +1,9 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class Book
3
+ include Mongoid::Document
4
+ include Mongoid::Userstamp
5
+
6
+ mongoid_userstamp user_model: 'User'
7
+
8
+ field :name
9
+ end
@@ -0,0 +1,11 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class Post
3
+ include Mongoid::Document
4
+ include Mongoid::Userstamp
5
+
6
+ mongoid_userstamp user_model: 'Admin',
7
+ created_name: :writer,
8
+ updated_name: :editor
9
+
10
+ field :title
11
+ end
@@ -0,0 +1,7 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class User
3
+ include Mongoid::Document
4
+ include Mongoid::Userstamp::User
5
+
6
+ field :name
7
+ end
@@ -0,0 +1,46 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe Mongoid::Userstamp::GemConfig do
5
+
6
+ subject { Mongoid::Userstamp::GemConfig.new }
7
+
8
+ describe '#initialize' do
9
+
10
+ context 'without block' do
11
+ it { should be_a Mongoid::Userstamp::GemConfig }
12
+ it { subject.created_name.should eq :created_by }
13
+ it { subject.updated_name.should eq :updated_by }
14
+ it { subject.user_reader.should eq :current_user }
15
+ end
16
+
17
+ context 'with block' do
18
+ subject do
19
+ Mongoid::Userstamp::GemConfig.new do |u|
20
+ u.created_name = :c_by
21
+ u.updated_name = :u_by
22
+ u.user_reader = :foo
23
+ end
24
+ end
25
+
26
+ it { should be_a Mongoid::Userstamp::GemConfig }
27
+ it { subject.created_name.should eq :c_by }
28
+ it { subject.updated_name.should eq :u_by }
29
+ it { subject.user_reader.should eq :foo }
30
+ end
31
+ end
32
+
33
+ describe 'deprecated methods' do
34
+ subject do
35
+ Mongoid::Userstamp::GemConfig.new do |u|
36
+ u.user_model = :bar
37
+ u.created_column = :bing
38
+ u.updated_column = :baz
39
+ end
40
+ end
41
+ it { ->{ subject }.should_not raise_error }
42
+ it { should be_a Mongoid::Userstamp::GemConfig }
43
+ it { subject.created_name.should eq :bing }
44
+ it { subject.updated_name.should eq :baz }
45
+ end
46
+ end
@@ -0,0 +1,31 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe Mongoid::Userstamp::ModelConfig do
5
+
6
+ subject { Mongoid::Userstamp::ModelConfig.new }
7
+ before { Mongoid::Userstamp.stub('config').and_return(OpenStruct.new(created_name: :created_by,
8
+ updated_name: :updated_by)) }
9
+ before { Mongoid::Userstamp.stub('user_classes').and_return(['User']) }
10
+
11
+ describe '#initialize' do
12
+
13
+ context 'with opts hash' do
14
+ subject { Mongoid::Userstamp::ModelConfig.new(user_model: :bar,
15
+ created_name: :c_by,
16
+ updated_name: :u_by) }
17
+
18
+ it { should be_a Mongoid::Userstamp::ModelConfig }
19
+ it { subject.user_model.should eq :bar }
20
+ it { subject.created_name.should eq :c_by }
21
+ it { subject.updated_name.should eq :u_by }
22
+ end
23
+
24
+ context 'without opts hash' do
25
+ it { should be_a Mongoid::Userstamp::ModelConfig }
26
+ it { subject.user_model.should eq 'User' }
27
+ it { subject.created_name.should eq :created_by }
28
+ it { subject.updated_name.should eq :updated_by }
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,157 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe Mongoid::Userstamp::Model do
5
+
6
+ subject(:book) { Book.new(name: 'Crafting Rails Applications') }
7
+ subject(:post) { Post.new(title: 'Understanding Rails') }
8
+
9
+ let(:user_1) { User.create!(name: 'Charles Dikkens') }
10
+ let(:user_2) { User.create!(name: 'Edmund Wells') }
11
+ let(:admin_1) { Admin.create!(name: 'JK Rowling') }
12
+ let(:admin_2) { Admin.create!(name: 'Stephan Norway') }
13
+
14
+ describe '::mongoid_userstamp_config' do
15
+ before do
16
+ @config = Book.instance_variable_get(:'@mongoid_userstamp_config')
17
+ Book.instance_variable_set(:'@mongoid_userstamp_config', nil)
18
+ end
19
+
20
+ after do
21
+ Book.instance_variable_set(:'@mongoid_userstamp_config', @config)
22
+ end
23
+
24
+ context 'when options are not given' do
25
+ subject{ Book.mongoid_userstamp_config }
26
+ it { should be_a Mongoid::Userstamp::ModelConfig }
27
+ it { subject.user_model.should eq Admin }
28
+ it { subject.created_name.should eq :created_by }
29
+ it { subject.updated_name.should eq :updated_by }
30
+ end
31
+
32
+ context 'when options are given' do
33
+ subject{ Book.mongoid_userstamp_config(user_model: 'User', created_name: :foo, updated_name: :bar) }
34
+ it { should be_a Mongoid::Userstamp::ModelConfig }
35
+ it { subject.user_model.should eq 'User' }
36
+ it { subject.created_name.should eq :foo }
37
+ it { subject.updated_name.should eq :bar }
38
+ end
39
+
40
+ context 'when mongoid_userstamp_user has been set' do
41
+ subject{ Book.mongoid_userstamp_config; Book.mongoid_userstamp_config(user_model: 'User', created_name: :foo, updated_name: :bar) }
42
+ it { should be_a Mongoid::Userstamp::ModelConfig }
43
+ it { subject.user_model.should eq Admin }
44
+ it { subject.created_name.should eq :created_by }
45
+ it { subject.updated_name.should eq :updated_by }
46
+ end
47
+
48
+ context 'when set via mongoid_userstamp method' do
49
+ subject{ Book.mongoid_userstamp(user_model: 'User', created_name: :foo, updated_name: :bar); Book.mongoid_userstamp_config }
50
+ it { should be_a Mongoid::Userstamp::ModelConfig }
51
+ it { subject.user_model.should eq 'User' }
52
+ it { subject.created_name.should eq :foo }
53
+ it { subject.updated_name.should eq :bar }
54
+ end
55
+ end
56
+
57
+ describe '::current_user' do
58
+
59
+ before { Admin.current = nil; User.current = nil }
60
+
61
+ context 'when current book user is not set' do
62
+ it { Book.current_user.should be_nil }
63
+ it { Post.current_user.should be_nil }
64
+ end
65
+
66
+ context 'when current book user is set' do
67
+ before{ User.current = user_1 }
68
+ it { Book.current_user.should eq user_1 }
69
+ it { Post.current_user.should be_nil }
70
+ end
71
+
72
+ context 'when current post user is set' do
73
+ before{ Admin.current = admin_1 }
74
+ it { Book.current_user.should be_nil }
75
+ it { Post.current_user.should eq admin_1 }
76
+ end
77
+ end
78
+
79
+ describe 'relations and callbacks' do
80
+
81
+ context 'when created without a user' do
82
+ before do
83
+ User.current = nil
84
+ Admin.current = nil
85
+ book.save!
86
+ post.save!
87
+ end
88
+
89
+ it { book.created_by.should be_nil }
90
+ it { book.updated_by.should be_nil }
91
+ it { post.writer.should be_nil }
92
+ it { post.editor.should be_nil }
93
+ end
94
+
95
+ context 'when created with a user' do
96
+ before do
97
+ User.current = user_1
98
+ Admin.current = admin_1
99
+ book.save!
100
+ post.save!
101
+ end
102
+
103
+ it { book.created_by.should eq user_1 }
104
+ it { book.updated_by.should eq user_1 }
105
+ it { post.writer.should eq admin_1 }
106
+ it { post.editor.should eq admin_1 }
107
+ end
108
+
109
+ context 'when creator is manually set' do
110
+ before do
111
+ User.current = user_1
112
+ Admin.current = admin_1
113
+ book.created_by = user_2
114
+ book.save!
115
+ post.writer_id = admin_2._id
116
+ post.save!
117
+ end
118
+
119
+ it { book.created_by.should eq user_2 }
120
+ it { book.updated_by.should eq user_1 }
121
+ it { post.writer.should eq admin_2 }
122
+ it { post.editor.should eq admin_1 }
123
+ end
124
+
125
+ context 'when updater is manually set' do
126
+ before do
127
+ User.current = user_1
128
+ Admin.current = admin_1
129
+ book.updated_by = user_2
130
+ book.save!
131
+ post.editor_id = admin_2._id
132
+ post.save!
133
+ end
134
+
135
+ it { book.created_by.should eq user_1 }
136
+ it { book.updated_by.should eq user_2 }
137
+ it { post.writer.should eq admin_1 }
138
+ it { post.editor.should eq admin_2 }
139
+ end
140
+
141
+ context 'when user has been destroyed' do
142
+ before do
143
+ User.current = user_1
144
+ Admin.current = admin_1
145
+ book.save!
146
+ post.save!
147
+ user_1.destroy
148
+ admin_1.destroy
149
+ end
150
+
151
+ it { Book.first.created_by.should be_nil }
152
+ it { Book.first.updated_by.should be_nil }
153
+ it { Post.first.writer.should be_nil }
154
+ it { Post.first.editor.should be_nil }
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe Mongoid::Userstamp::UserConfig do
5
+
6
+ subject { Mongoid::Userstamp::UserConfig.new }
7
+ before { Mongoid::Userstamp.stub('config').and_return(OpenStruct.new(user_reader: :foo)) }
8
+
9
+ describe '#initialize' do
10
+
11
+ context 'with opts hash' do
12
+ subject { Mongoid::Userstamp::UserConfig.new({reader: :bar}) }
13
+
14
+ it { should be_a Mongoid::Userstamp::UserConfig }
15
+ it { subject.reader.should eq :bar }
16
+ end
17
+
18
+ context 'without opts hash' do
19
+ it { should be_a Mongoid::Userstamp::UserConfig }
20
+ it { subject.reader.should eq :foo }
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,95 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe Mongoid::Userstamp::User do
5
+
6
+ subject(:book) { Book.new(name: 'Crafting Rails Applications') }
7
+ subject(:post) { Post.new(title: 'Understanding Rails') }
8
+
9
+ let(:user_1) { User.create!(name: 'Charles Dikkens') }
10
+ let(:user_2) { User.create!(name: 'Edmund Wells') }
11
+ let(:admin_1) { Admin.create!(name: 'JK Rowling') }
12
+ let(:admin_2) { Admin.create!(name: 'Stephan Norway') }
13
+
14
+ describe '::current and #current?' do
15
+ before { Admin.current = nil; User.current = nil }
16
+
17
+ context 'when current users are not set' do
18
+ it { Admin.current.should be_nil }
19
+ it { User.current.should be_nil }
20
+ it { admin_1.current?.should be_falsey }
21
+ it { admin_2.current?.should be_falsey }
22
+ it { user_1.current?.should be_falsey }
23
+ it { user_2.current?.should be_falsey }
24
+ end
25
+
26
+ context 'when current User is set' do
27
+ before{ User.current = user_1 }
28
+ it { User.current.should eq user_1 }
29
+ it { Admin.current.should be_nil }
30
+ it { admin_1.current?.should be_falsey }
31
+ it { admin_2.current?.should be_falsey }
32
+ it { user_1.current?.should be_truthy }
33
+ it { user_2.current?.should be_falsey }
34
+ end
35
+
36
+ context 'when current Admin is set' do
37
+ before{ Admin.current = admin_1 }
38
+ it { User.current.should be_nil }
39
+ it { Admin.current.should eq admin_1 }
40
+ it { admin_1.current?.should be_truthy }
41
+ it { admin_2.current?.should be_falsey }
42
+ it { user_1.current?.should be_falsey }
43
+ it { user_2.current?.should be_falsey }
44
+ end
45
+ end
46
+
47
+ describe '::do_as' do
48
+ it 'should set the current user' do
49
+ Admin.current = admin_1
50
+ Admin.do_as admin_2 do
51
+ Admin.current.should eq admin_2
52
+ end
53
+ Admin.current.should eq admin_1
54
+ end
55
+
56
+ it 'should return the value of the block' do
57
+ Admin.do_as admin_2 do
58
+ 'foo'
59
+ end.should eq 'foo'
60
+ end
61
+
62
+ it 'should revert user in case of error' do
63
+ Admin.current = admin_1
64
+ begin
65
+ Admin.do_as admin_2 do
66
+ raise
67
+ end
68
+ rescue
69
+ end
70
+ Admin.current.should eq admin_1
71
+ end
72
+ end
73
+
74
+ describe '::mongoid_userstamp_user' do
75
+ before{ User.instance_variable_set(:'@mongoid_userstamp_user', nil) }
76
+
77
+ context 'when options are not given' do
78
+ subject{ User.mongoid_userstamp_user }
79
+ it { should be_a Mongoid::Userstamp::UserConfig }
80
+ it { subject.reader.should eq :current_user }
81
+ end
82
+
83
+ context 'when options are given' do
84
+ subject{ User.mongoid_userstamp_user(reader: :foo) }
85
+ it { should be_a Mongoid::Userstamp::UserConfig }
86
+ it { subject.reader.should eq :foo }
87
+ end
88
+
89
+ context 'when mongoid_userstamp_user has been set' do
90
+ subject{ User.mongoid_userstamp_user; User.mongoid_userstamp_user(reader: :foo) }
91
+ it { should be_a Mongoid::Userstamp::UserConfig }
92
+ it { subject.reader.should eq :current_user }
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,121 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe Mongoid::Userstamp do
5
+
6
+ subject{ Mongoid::Userstamp }
7
+
8
+ let(:user_1){ User.create!(name: 'Edmund Wells') }
9
+ let(:user_2){ User.create!(name: 'Charles Dikkens') }
10
+ let(:admin_1){ Admin.create!(name: 'JK Rowling') }
11
+
12
+ describe '#config' do
13
+
14
+ before { Mongoid::Userstamp.instance_variable_set(:'@config', nil) }
15
+
16
+ context 'without block' do
17
+ subject{ Mongoid::Userstamp.config }
18
+ it { should be_a Mongoid::Userstamp::GemConfig }
19
+ it { subject.created_name.should eq :created_by }
20
+ it { subject.updated_name.should eq :updated_by }
21
+ it { subject.user_reader.should eq :current_user }
22
+ end
23
+
24
+ context 'with block' do
25
+ subject do
26
+ Mongoid::Userstamp.config do |u|
27
+ u.created_name = :c_by
28
+ u.updated_name = :u_by
29
+ u.user_reader = :foo
30
+ end
31
+ end
32
+ it { should be_a Mongoid::Userstamp::GemConfig }
33
+ it { subject.created_name.should eq :c_by }
34
+ it { subject.updated_name.should eq :u_by }
35
+ it { subject.user_reader.should eq :foo }
36
+ end
37
+
38
+ context 'deprecated method' do
39
+ subject{ Mongoid::Userstamp.configure }
40
+ it { should be_a Mongoid::Userstamp::GemConfig }
41
+ end
42
+ end
43
+
44
+ describe '#current_user' do
45
+ before do
46
+ Mongoid::Userstamp.set_current_user(user_1)
47
+ Mongoid::Userstamp.set_current_user(admin_1)
48
+ end
49
+ context 'when user_class is User' do
50
+ subject{ Mongoid::Userstamp.current_user('User') }
51
+ it{ should eq user_1 }
52
+ end
53
+ context 'when user_class is Admin' do
54
+ subject{ Mongoid::Userstamp.current_user('Admin') }
55
+ it{ should eq admin_1 }
56
+ end
57
+ context 'when user_class is other' do
58
+ subject{ Mongoid::Userstamp.current_user('foobar') }
59
+ it{ should be_nil }
60
+ end
61
+ context 'when user_class is not given' do
62
+ subject{ Mongoid::Userstamp.current_user }
63
+ it 'should use the default user_class' do
64
+ should eq admin_1
65
+ end
66
+ end
67
+ end
68
+
69
+ describe '#model_classes' do
70
+ before { Mongoid::Userstamp.instance_variable_set(:'@model_classes', nil) }
71
+ context 'default value' do
72
+ it { subject.model_classes.should eq [] }
73
+ end
74
+ context 'setting values' do
75
+ before do
76
+ subject.add_model_class 'Book'
77
+ subject.add_model_class 'Post'
78
+ end
79
+ it { subject.model_classes.should eq [Book, Post] }
80
+ end
81
+ end
82
+
83
+ describe '#user_classes' do
84
+ before { Mongoid::Userstamp.instance_variable_set(:'@user_classes', nil) }
85
+ context 'default value' do
86
+ it { subject.user_classes.should eq [] }
87
+ end
88
+ context 'setting values' do
89
+ before do
90
+ subject.add_user_class 'Book'
91
+ subject.add_user_class 'Post'
92
+ end
93
+ it { subject.user_classes.should eq [Book, Post] }
94
+ end
95
+ end
96
+
97
+ describe '#store' do
98
+ context 'when RequestStore is defined' do
99
+ before do
100
+ stub_const('RequestStore', Object.new)
101
+ RequestStore.stub('store').and_return('foobar')
102
+ end
103
+ it { subject.store.should eq RequestStore.store }
104
+ end
105
+ context 'when RequestStore is not defined' do
106
+ before{ hide_const('RequestStore') }
107
+ it { subject.store.should eq Thread.current }
108
+ end
109
+ end
110
+
111
+ describe '#userstamp_key' do
112
+ context 'when model is a Class' do
113
+ subject{ Mongoid::Userstamp.userstamp_key(User) }
114
+ it{ should eq :"mongoid_userstamp/user" }
115
+ end
116
+ context 'when model is a String' do
117
+ subject{ Mongoid::Userstamp.userstamp_key('MyNamespace::User') }
118
+ it{ should eq :"mongoid_userstamp/my_namespace/user" }
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ class ConfigTest < BaseTest
4
+ test 'should config using block' do
5
+ Mongoid::Userstamps.config do |c|
6
+ c.created_name = :creator
7
+ c.updated_name = :updater
8
+ c.deleted_name = :deleter
9
+ c.user_reader = :get_user
10
+ end
11
+ assert_equal :creator, Mongoid::Userstamps::Config.created_name
12
+ assert_equal :updater, Mongoid::Userstamps::Config.updated_name
13
+ assert_equal :deleter, Mongoid::Userstamps::Config.deleted_name
14
+ assert_equal :get_user, Mongoid::Userstamps::Config.user_reader
15
+ end
16
+ end
17
+
@@ -0,0 +1,12 @@
1
+ require 'test_helper'
2
+
3
+ class ModelTest < BaseTest
4
+ test 'should set created_by and updated_by on creation' do
5
+ @user = User.create(name: 'John')
6
+ Mongoid::Userstamps::Config.set_current_user(User, @user)
7
+ @post = Post.create(title: 'Hello')
8
+ assert_equal @user, @post.created_by
9
+ assert_equal @user, @post.updated_by
10
+ end
11
+ end
12
+
@@ -0,0 +1,7 @@
1
+ class Post
2
+ include Mongoid::Document
3
+ include Mongoid::Userstamps
4
+
5
+ field :title
6
+ end
7
+
@@ -0,0 +1,7 @@
1
+ class User
2
+ include Mongoid::Document
3
+ include Mongoid::Userstamps::User
4
+
5
+ field :name
6
+ end
7
+
data/test/mongoid.yml ADDED
@@ -0,0 +1,6 @@
1
+ test:
2
+ sessions:
3
+ default:
4
+ database: mongoid_userstamps_test
5
+ hosts:
6
+ - localhost:27017
@@ -0,0 +1,25 @@
1
+ require 'bundler/setup'
2
+ require 'simplecov'
3
+ SimpleCov.configure do
4
+ add_filter '/test/'
5
+ end
6
+ SimpleCov.start if ENV['COVERAGE']
7
+
8
+ require 'minitest/autorun'
9
+ require 'mongoid'
10
+ require 'pry'
11
+
12
+ require File.expand_path("../../lib/mongoid-userstamps", __FILE__)
13
+
14
+ Mongoid.load!("#{File.dirname(__FILE__)}/mongoid.yml", "test")
15
+
16
+ Dir["#{File.dirname(__FILE__)}/models/*.rb"].each { |f| require f }
17
+
18
+ ActiveSupport::TestCase.test_order = :random
19
+
20
+ class BaseTest < ActiveSupport::TestCase
21
+ def teardown
22
+ Mongoid::Sessions.default.use('mongoid_userstamps_test').drop
23
+ end
24
+ end
25
+