PageRenderTime 59ms CodeModel.GetById 29ms RepoModel.GetById 1ms app.codeStats 0ms

/spec/factories.rb

https://github.com/taste-o-code/taste-o-code-web
Ruby | 52 lines | 44 code | 8 blank | 0 comment | 2 complexity | bd78823b05bc8ec9f887a6b08222efe4 MD5 | raw file
  1. FactoryGirl.define do
  2. factory :user do
  3. sequence(:name) { |i| "John Doe #{i}" }
  4. sequence(:email) { |i| "john#{i}@example.com" }
  5. location 'Minsk, Belarus'
  6. about 'Poor factory user...'
  7. password '123456'
  8. end
  9. factory :omniauth_identity do
  10. provider 'google'
  11. uid do |identity|
  12. OmniAuth.config.mock_auth.fetch(identity.provider.to_sym, { 'uid' => "123456" })['uid']
  13. end
  14. end
  15. factory :user_with_omniauth_identity, :parent => :user do |user|
  16. user.before(:create) { |u| u.omniauth_identities = [build(:omniauth_identity)] }
  17. password nil
  18. end
  19. factory :user_with_languages, :parent => :user do |user|
  20. user.after(:create) { |u| u.languages = [create(:language), create(:language)] }
  21. end
  22. factory :task do
  23. sequence(:position) { |n| n }
  24. sequence(:name) { |n| "Task no #{n}" }
  25. sequence(:slug) { |n| "task_#{n}" }
  26. description "*Description* \n\n print(hello)\n print(world)"
  27. template "Solution template"
  28. award 10
  29. end
  30. factory :language do |lang|
  31. sequence(:name) { |n| "Language #{n}" }
  32. sequence(:id) { |n| "lang_#{n}" }
  33. description 'Description and some interesting facts about language.'
  34. code_example 'print "Hello, world"'
  35. links { |l| ["example.org/wiki/#{l.name}", "example.org/languages/#{l.name.parameterize}", "escaped.org/C%2B%2B"] }
  36. lang.after(:create) { |l| 2.times { create(:task, language: l) } }
  37. version 'Version 1.2.3'
  38. end
  39. factory :comment do
  40. body 'Some body'
  41. task { Task.first || create(:task) }
  42. user { User.first || create(:user) }
  43. end
  44. end