Skip to content
Extraits de code Groupes Projets
Valider 5b78a31d rédigé par Raphael's avatar Raphael
Parcourir les fichiers

make_user now makes a user from fixtures

parent 0c434ff6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
namespace :fixtures do
desc 'Regenerates user fixtures'
task :users do
puts "Regenerating fixtures for users."
require File.join(Rails.root,"config/environment")
require File.join(Rails.root,"spec/helper_methods")
require File.join(Rails.root,"spec/factories")
include HelperMethods
UserFixer.regenerate_user_fixtures
puts "Fixture regeneration complete."
end
end
Ce diff est replié.
...@@ -83,33 +83,49 @@ module HelperMethods ...@@ -83,33 +83,49 @@ module HelperMethods
File.open(File.dirname(__FILE__) + '/fixtures/evan_hcard').read File.open(File.dirname(__FILE__) + '/fixtures/evan_hcard').read
end end
def build_user_fixtures def make_user
arr = [] UserFixer.fixed_user
10.times do
user = Factory :user
person = user.person
arr << { :user => user.to_mongo, :person => person.to_mongo}
end
arr
end end
def regenerate_user_fixtures class UserFixer
users = {:users => build_user_fixtures} def self.regenerate_user_fixtures
File.open(File.join(Rails.root,"spec/fixtures/users.yaml"),'w') do |file| users = {:users => build_user_fixtures}
file.write(users.to_yaml) File.open(File.join(Rails.root,"spec/fixtures/users.yaml"),'w') do |file|
file.write(users.to_yaml)
end
end
def self.build_user_fixtures
arr = []
10.times do
user = Factory :user
person = user.person
arr << { :user => user.to_mongo, :person => person.to_mongo}
end
arr
end
def self.load_user_fixtures
yaml_users = YAML.load_file(File.join(Rails.root,"spec/fixtures/users.yaml"))
@@user_hashes = []
@@user_number = 0
yaml_users[:users].each do |yaml_user|
user_id = yaml_user[:user]["_id"].to_id
@@user_hashes << {:id => user_id, :data => yaml_user}
end
end end
end
def save_user_fixtures def self.fixed_user
yaml_users = YAML.load_file(File.join(Rails.root,"spec/fixtures/users.yaml")) db = MongoMapper.database
db = MongoMapper.database people = db.collection("people")
people = db.collection("people") users = db.collection("users")
users = db.collection("users") user_hash = @@user_hashes[@@user_number]
yaml_users[:users].each do |yaml_user| @@user_number += 1
user = yaml_user[:user] @@user_number = 0 if @@user_number >= @@user_hashes.length
person = yaml_user[:person] users.insert(user_hash[:data][:user])
users.insert(user) people.insert(user_hash[:data][:person])
people.insert(person)
User.find(user_hash[:id])
end end
end end
end end
...@@ -11,10 +11,31 @@ describe 'making sure the spec runner works' do ...@@ -11,10 +11,31 @@ describe 'making sure the spec runner works' do
loaded_user.person.owner_id.should == user.id loaded_user.person.owner_id.should == user.id
end end
describe 'fixtures' do
it 'does not save the fixtures without prompting' do
User.count.should == 0
end
it 'returns a user on fixed_user' do
new_user = make_user
new_user.is_a?(User).should be_true
User.count.should == 1
end
it 'returns a different user on the second fixed_user' do
new_user = make_user
second_user = make_user
User.count.should == 2
new_user.id.should_not == second_user.id
end
end
describe 'factories' do describe 'factories' do
describe 'build' do describe 'build' do
it 'does not save a built user' do it 'does not save a built user' do
pending "This problem is bizarre and needs fixing" pending 'Why does this happen?'
Factory.build(:user).persisted?.should be_false Factory.build(:user).persisted?.should be_false
end end
end end
...@@ -22,9 +43,9 @@ describe 'making sure the spec runner works' do ...@@ -22,9 +43,9 @@ describe 'making sure the spec runner works' do
describe '#friend_users' do describe '#friend_users' do
before do before do
@user1 = Factory.create(:user) @user1 = make_user
@aspect1 = @user1.aspect(:name => "losers") @aspect1 = @user1.aspect(:name => "losers")
@user2 = Factory.create(:user) @user2 = make_user
@aspect2 = @user2.aspect(:name => "bruisers") @aspect2 = @user2.aspect(:name => "bruisers")
friend_users(@user1, @aspect1, @user2, @aspect2) friend_users(@user1, @aspect1, @user2, @aspect2)
end end
......
...@@ -31,6 +31,7 @@ RSpec.configure do |config| ...@@ -31,6 +31,7 @@ RSpec.configure do |config|
stub_sockets stub_sockets
MessageHandler.any_instance.stubs(:add_post_request) MessageHandler.any_instance.stubs(:add_post_request)
DatabaseCleaner.clean DatabaseCleaner.clean
UserFixer.load_user_fixtures
end end
end end
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter