stbaldricks 8.1.0 → 8.2.1.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/stbaldricks/endpoints/lib/entity.rb +1 -1
- data/lib/stbaldricks/entities/contact_group.rb +0 -1
- data/lib/stbaldricks/entities/lib/base.rb +6 -0
- data/lib/stbaldricks/entities/response.rb +2 -2
- data/lib/stbaldricks/patches/boolean.rb +2 -0
- data/lib/stbaldricks/patches/float.rb +2 -0
- data/lib/stbaldricks/patches/integer.rb +2 -0
- data/lib/stbaldricks/patches/nil.rb +2 -0
- data/lib/stbaldricks/patches/string.rb +2 -0
- data/lib/stbaldricks/version.rb +1 -1
- data/lib/stbaldricks_factories.rb +5 -0
- data/spec/factories/address.rb +14 -0
- data/spec/factories/campaign/totals.rb +9 -0
- data/spec/factories/campaign.rb +9 -0
- data/spec/factories/challenge.rb +19 -0
- data/spec/factories/challenger.rb +27 -0
- data/spec/factories/collection.rb +17 -0
- data/spec/factories/contact.rb +18 -0
- data/spec/factories/contact_group.rb +18 -0
- data/spec/factories/diagnosis.rb +12 -0
- data/spec/factories/disease.rb +11 -0
- data/spec/factories/donation/participant.rb +27 -0
- data/spec/factories/donation.rb +68 -0
- data/spec/factories/donor.rb +13 -0
- data/spec/factories/email_address.rb +11 -0
- data/spec/factories/error.rb +9 -0
- data/spec/factories/event/coach_tracking/coaching_interactions.rb +12 -0
- data/spec/factories/event/coach_tracking/plaque.rb +12 -0
- data/spec/factories/event/coach_tracking/proceeds.rb +12 -0
- data/spec/factories/event/coach_tracking.rb +18 -0
- data/spec/factories/event/contacts/contact.rb +17 -0
- data/spec/factories/event/contacts/name_pieces.rb +12 -0
- data/spec/factories/event/contacts.rb +16 -0
- data/spec/factories/event/photos.rb +12 -0
- data/spec/factories/event/totals.rb +15 -0
- data/spec/factories/event/venue/location.rb +18 -0
- data/spec/factories/event/venue/social.rb +16 -0
- data/spec/factories/event/venue.rb +16 -0
- data/spec/factories/event.rb +43 -0
- data/spec/factories/event_application.rb +34 -0
- data/spec/factories/event_supporter.rb +19 -0
- data/spec/factories/fund.rb +18 -0
- data/spec/factories/fundraiser/photos.rb +12 -0
- data/spec/factories/fundraiser/policies.rb +11 -0
- data/spec/factories/fundraiser/totals.rb +11 -0
- data/spec/factories/fundraiser.rb +24 -0
- data/spec/factories/fundraising_page.rb +29 -0
- data/spec/factories/grant.rb +22 -0
- data/spec/factories/grant_institution.rb +17 -0
- data/spec/factories/institution.rb +18 -0
- data/spec/factories/kid/custom_institution.rb +12 -0
- data/spec/factories/kid.rb +70 -0
- data/spec/factories/kid_honor.rb +16 -0
- data/spec/factories/kid_institution.rb +17 -0
- data/spec/factories/lib/helpers.rb +7 -0
- data/spec/factories/location.rb +17 -0
- data/spec/factories/memorial/photos.rb +14 -0
- data/spec/factories/memorial/totals.rb +11 -0
- data/spec/factories/memorial/tribute.rb +19 -0
- data/spec/factories/memorial.rb +22 -0
- data/spec/factories/message.rb +31 -0
- data/spec/factories/name_pieces.rb +24 -0
- data/spec/factories/newsletter_recipient.rb +13 -0
- data/spec/factories/organization/addresses.rb +16 -0
- data/spec/factories/organization/email_addresses.rb +14 -0
- data/spec/factories/organization/phone_numbers.rb +14 -0
- data/spec/factories/organization.rb +34 -0
- data/spec/factories/page.rb +5 -0
- data/spec/factories/participant/photos.rb +14 -0
- data/spec/factories/participant/policies.rb +12 -0
- data/spec/factories/participant/rankings/ranking.rb +12 -0
- data/spec/factories/participant/rankings.rb +16 -0
- data/spec/factories/participant/roles/role.rb +150 -0
- data/spec/factories/participant/roles.rb +35 -0
- data/spec/factories/participant/totals.rb +11 -0
- data/spec/factories/participant.rb +89 -0
- data/spec/factories/payment.rb +13 -0
- data/spec/factories/permissions.rb +12 -0
- data/spec/factories/person/addresses.rb +16 -0
- data/spec/factories/person/email_addresses.rb +14 -0
- data/spec/factories/person/phone_numbers.rb +14 -0
- data/spec/factories/person/policies.rb +13 -0
- data/spec/factories/person.rb +22 -0
- data/spec/factories/phone.rb +11 -0
- data/spec/factories/photo.rb +11 -0
- data/spec/factories/photos.rb +9 -0
- data/spec/factories/recurring_gift.rb +22 -0
- data/spec/factories/researcher.rb +15 -0
- data/spec/factories/response.rb +38 -0
- data/spec/factories/search_event.rb +19 -0
- data/spec/factories/search_fundraiser.rb +15 -0
- data/spec/factories/search_kid.rb +13 -0
- data/spec/factories/search_participant.rb +15 -0
- data/spec/factories/search_team.rb +13 -0
- data/spec/factories/shave_schedule/time_selection_permissions.rb +12 -0
- data/spec/factories/shave_schedule.rb +33 -0
- data/spec/factories/team/photos.rb +12 -0
- data/spec/factories/team/rankings/ranking.rb +12 -0
- data/spec/factories/team/rankings.rb +15 -0
- data/spec/factories/team/totals.rb +14 -0
- data/spec/factories/team.rb +43 -0
- data/spec/factories/third_party_media.rb +12 -0
- data/spec/factories/treatment_status.rb +10 -0
- data/spec/factories/user.rb +14 -0
- data/spec/factories/venue.rb +15 -0
- metadata +405 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d116a3534065666c7e6802ef0df0cb5bdf04571b280bde3b607d77f1cb39eb81
|
4
|
+
data.tar.gz: ebbc18fb80398caf1613856dd402e943bf3e0cd8f67121c23e5d1be2ba7f184a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49b494684cc47383febbee7a8641d01f0546e74de599c125365d275c8a547cd0e3ee36b10ae043e3b366b7d5e34f684c6c604e00bdb079e6401eed3db7dbce80
|
7
|
+
data.tar.gz: ea1ccfede3938b10bdc31097f454344d99259f1b8073629de4aae6feaf13ed982c8a9df19189ea76485bda8bb9cf8ba765abb0810731c1ec4dd7a25e68045981
|
@@ -20,7 +20,7 @@ module SBF
|
|
20
20
|
# Calls create if the id field is empty. Otherwise it calls update.
|
21
21
|
def save(entity_or_hash, with = {})
|
22
22
|
if entity_or_hash.is_a?(SBF::Client::BaseEntity)
|
23
|
-
return create(entity_or_hash, with) if entity_or_hash.id.nil?
|
23
|
+
return create(entity_or_hash, with) if !entity_or_hash.respond_to?(:id) || entity_or_hash.id.nil?
|
24
24
|
|
25
25
|
update(entity_or_hash.id, entity_or_hash, with)
|
26
26
|
else
|
@@ -71,6 +71,12 @@ module SBF
|
|
71
71
|
@destroyed
|
72
72
|
end
|
73
73
|
|
74
|
+
def to_partial
|
75
|
+
base_class = self.class.name.gsub(/(.*::)(Full|Partial)(.*)/, '\1')
|
76
|
+
base_name = self.class.name.gsub(/(.*::)(Full|Partial)(.*)/, '\3')
|
77
|
+
"#{base_class}Partial#{base_name}".to_class.new(to_hash)
|
78
|
+
end
|
79
|
+
|
74
80
|
## Returns a hash of changed data for the entity and its sub-entities
|
75
81
|
# @param with_keys [Boolean] when true, include the keys of the current entity. (sub-entity keys will always be included if they are present)
|
76
82
|
# @return [Hash] the changed data
|
data/lib/stbaldricks/version.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :address, class: SBF::Client::Address do
|
3
|
+
skip_create
|
4
|
+
|
5
|
+
initialize_with do
|
6
|
+
new(attributes)
|
7
|
+
end
|
8
|
+
|
9
|
+
type { SBF::Client::Address::Type::HOME }
|
10
|
+
city { Faker::Address.city }
|
11
|
+
state { 'NE' }
|
12
|
+
country { 'US' }
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative 'lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :challenge, class: SBF::Client::Challenge do
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
status { SBF::Client::Challenge::Status::PENDING }
|
12
|
+
end_date { Date.today + 30 }
|
13
|
+
|
14
|
+
after :build do |challenge, evaluator|
|
15
|
+
challenge.challenger = build(:challenger) if unpopulated?(evaluator, :challenger)
|
16
|
+
challenge.challengee = build(:challengee) if unpopulated?(evaluator, :challengee)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative 'lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :_base_challenger, class: SBF::Client::Challenger do
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
after :build do |challenger, evaluator|
|
12
|
+
if unpopulated?(evaluator, :entity)
|
13
|
+
event = create(:event)
|
14
|
+
participant = create(:shavee, event: event.to_partial)
|
15
|
+
challenger.entity = participant.to_partial
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
factory :challenger, class: SBF::Client::Challenger, parent: :_base_challenger do
|
21
|
+
is_accepted { true }
|
22
|
+
end
|
23
|
+
|
24
|
+
factory :challengee, class: SBF::Client::Challenger, parent: :_base_challenger do
|
25
|
+
is_accepted { false }
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :collection, class: SBF::Client::EntityCollection do
|
3
|
+
skip_create
|
4
|
+
end
|
5
|
+
|
6
|
+
factory :collection_with_error, parent: :collection do
|
7
|
+
after :build do |collection, evaluator|
|
8
|
+
if evaluator.error
|
9
|
+
collection.add_errors(evaluator.error)
|
10
|
+
else
|
11
|
+
error = SBF::Client::ErrorEntity.new(code: 5007, type: 'BadRequest', details: 'Invalid Request')
|
12
|
+
collection.add_errors(error)
|
13
|
+
end
|
14
|
+
collection.errors_http_code = evaluator.http_code || 400
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :contact, class: SBF::Client::CustomContact do
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
email { Faker::Internet.email }
|
12
|
+
contact_groups { [] }
|
13
|
+
|
14
|
+
after :build do |contact_group, evaluator|
|
15
|
+
contact_group.owner = create(:person) if unpopulated?(evaluator, :owner)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :contact_group, class: SBF::Client::ContactGroup do
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
display_name { random }
|
12
|
+
contacts { [] }
|
13
|
+
|
14
|
+
after :build do |contact_group, evaluator|
|
15
|
+
contact_group.owner = create(:person) if unpopulated?(evaluator, :owner)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :disease, class: SBF::Client::Grant::Disease do
|
3
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
4
|
+
|
5
|
+
initialize_with do
|
6
|
+
new(attributes)
|
7
|
+
end
|
8
|
+
|
9
|
+
name { SecureRandom.hex }
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative '../lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :full_donation_participant, class: SBF::Client::Donation::FullParticipant do
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
fundraising_goal { 100 }
|
12
|
+
shave_time { Time.now.to_s }
|
13
|
+
sequence(:display_name) { |n| "Display Name #{n}" }
|
14
|
+
model_type { 'person' }
|
15
|
+
|
16
|
+
after :build do |participant, evaluator|
|
17
|
+
participant.person = build(:person) if unpopulated?(evaluator, :person)
|
18
|
+
participant.send(:totals=, build(:participant_totals)) if unpopulated?(evaluator, :totals)
|
19
|
+
participant.send(:rankings=, build(:participant_rankings)) if unpopulated?(evaluator, :rankings)
|
20
|
+
participant.roles = build(:participant_roles) if unpopulated?(evaluator, :roles)
|
21
|
+
participant.send(:photos=, build(:participant_photos)) if unpopulated?(evaluator, :photos)
|
22
|
+
participant.event = build(:event) if unpopulated?(evaluator, :event)
|
23
|
+
participant.team = build(:team, event: participant.event) if unpopulated?(evaluator, :team)
|
24
|
+
participant.fundraising_page = build(:fundraising_page) if unpopulated?(evaluator, :fundraising_page)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require_relative 'lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :_donation, class: SBF::Client::FullDonation do
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
status { SBF::Client::Donation::Status::ACTIVE }
|
12
|
+
amount { rand(10..100) }
|
13
|
+
display_name { Faker::Name.name }
|
14
|
+
year { DateTime.now.year }
|
15
|
+
fund { nil }
|
16
|
+
memorial { nil }
|
17
|
+
end
|
18
|
+
|
19
|
+
factory :donation, class: SBF::Client::FullDonation, parent: :_donation do
|
20
|
+
after :build do |donation, evaluator|
|
21
|
+
donation.payment_details = build(:cc_payment) if unpopulated?(evaluator, :payment_details)
|
22
|
+
donation.donor = build(:person) if unpopulated?(evaluator, :donor)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
factory :cc_payment, class: SBF::Client::Payment::CreditCardDetails do
|
27
|
+
end
|
28
|
+
|
29
|
+
factory :cash_donation, class: SBF::Client::FullDonation, parent: :_donation do
|
30
|
+
status { SBF::Client::Donation::Status::PENDING }
|
31
|
+
how_created { SBF::Client::Donation::HowCreated::SUBMIT_CASH }
|
32
|
+
|
33
|
+
after :build do |donation, evaluator|
|
34
|
+
donation.payment_details = build(:cash_payment) if unpopulated?(evaluator, :payment_details)
|
35
|
+
donation.donor = build(:person, status: SBF::Client::Person::Status::PENDING) if unpopulated?(evaluator, :donor)
|
36
|
+
donation.submitter = build(:person) if unpopulated?(evaluator, :submitter)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
factory :cash_payment, class: SBF::Client::Payment::CashDetails do
|
41
|
+
end
|
42
|
+
|
43
|
+
factory :nonce_payment, class: SBF::Client::Payment::NonceDetails do
|
44
|
+
gateway { SBF::Client::Payment::Gateway::PAYMENTSPRING }
|
45
|
+
nonce { fake_valid_nonce }
|
46
|
+
device_data { random }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
require 'httparty'
|
51
|
+
require 'uri'
|
52
|
+
def fake_valid_nonce
|
53
|
+
url = "#{ENV['PAYMENTSPRING_BASE_URL']}/tokens/jsonp"
|
54
|
+
pub_key = ENV['PAYMENTSPRING_PUBLIC_KEY']
|
55
|
+
data = {
|
56
|
+
public_api_key: pub_key,
|
57
|
+
card_number: '4111111111111111',
|
58
|
+
card_exp_month: '1',
|
59
|
+
card_exp_year: Date.today.year + 1,
|
60
|
+
card_owner_name: 'John%20Doe'
|
61
|
+
}
|
62
|
+
|
63
|
+
uri = URI.parse("#{url}?#{data.to_query}")
|
64
|
+
response = HTTParty.get(uri, headers: {'Accept' => 'application/json'})
|
65
|
+
raise 'Error retrieving valid nonce' unless response.ok?
|
66
|
+
|
67
|
+
response.parsed_response['id']
|
68
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :donor, class: SBF::Client::Donor do
|
3
|
+
skip_create
|
4
|
+
|
5
|
+
initialize_with do
|
6
|
+
new(attributes)
|
7
|
+
end
|
8
|
+
|
9
|
+
sequence(:donor_name) { |n| "donor name #{n}" }
|
10
|
+
amount { 100 }
|
11
|
+
donation_created_at { DateTime.now.to_s }
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :event_coach_tracking_coaching_interactions, class: SBF::Client::Event::CoachTracking::CoachingInteractions do
|
3
|
+
skip_create
|
4
|
+
|
5
|
+
initialize_with do
|
6
|
+
new(attributes)
|
7
|
+
end
|
8
|
+
|
9
|
+
introductory_conversation_date { Time.now.to_s }
|
10
|
+
post_event_conversation_date { Time.now.to_s }
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :event_coach_tracking_plaque, class: SBF::Client::Event::CoachTracking::Plaque do
|
3
|
+
skip_create
|
4
|
+
|
5
|
+
initialize_with do
|
6
|
+
new(attributes)
|
7
|
+
end
|
8
|
+
|
9
|
+
sequence(:issued_to) { |n| "Issued To: #{n}" }
|
10
|
+
sent_date { Time.now.to_s }
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :event_coach_tracking_proceeds, class: SBF::Client::Event::CoachTracking::Proceeds do
|
3
|
+
skip_create
|
4
|
+
|
5
|
+
initialize_with do
|
6
|
+
new(attributes)
|
7
|
+
end
|
8
|
+
|
9
|
+
received_date { Time.now.to_s }
|
10
|
+
notification_email_sent_date { Time.now.to_s }
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :event_coach_tracking, class: SBF::Client::Event::CoachTracking do
|
3
|
+
skip_create
|
4
|
+
|
5
|
+
initialize_with do
|
6
|
+
new(attributes)
|
7
|
+
end
|
8
|
+
|
9
|
+
host_agreement_date { Time.now.to_s }
|
10
|
+
activated_date { Time.now.to_s }
|
11
|
+
|
12
|
+
after :build do |coach_tracking, _evaluator|
|
13
|
+
coach_tracking.proceeds = build(:event_coach_tracking_proceeds)
|
14
|
+
coach_tracking.coaching_interactions = build(:event_coach_tracking_coaching_interactions)
|
15
|
+
coach_tracking.plaque = build(:event_coach_tracking_plaque)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../../lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :event_contact, class: SBF::Client::Event::Contacts::Contact do
|
5
|
+
skip_create
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
after :build do |contact, evaluator|
|
12
|
+
contact.name_pieces = build(:event_contact_name_pieces) if unpopulated?(evaluator, :name_pieces)
|
13
|
+
contact.phone = build(:phone) if unpopulated?(evaluator, :phone)
|
14
|
+
contact.email_address = build(:email_address) if unpopulated?(evaluator, :email_address)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :event_contacts, class: SBF::Client::Event::Contacts do
|
5
|
+
skip_create
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
after :build do |contacts, evaluator|
|
12
|
+
contacts.primary = build(:event_contact) if unpopulated?(evaluator, :primary)
|
13
|
+
contacts.secondary = build(:event_contact) if unpopulated?(evaluator, :secondary)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :event_totals, class: SBF::Client::Event::Totals do
|
3
|
+
skip_create
|
4
|
+
|
5
|
+
initialize_with do
|
6
|
+
new(attributes)
|
7
|
+
end
|
8
|
+
|
9
|
+
fundraisers { 1 }
|
10
|
+
participants { 8 }
|
11
|
+
shavees { 5 }
|
12
|
+
teams { 2 }
|
13
|
+
amount_raised { 100 }
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative '../../lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :event_venue_location, class: SBF::Client::Event::Venue::Location do
|
5
|
+
skip_create
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
type { SBF::Client::Event::Venue::Location::Type::OTHER }
|
12
|
+
name { Faker::University.name }
|
13
|
+
|
14
|
+
after :build do |location, evaluator|
|
15
|
+
location.address = build(:address) if unpopulated?(evaluator, :address)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../../lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :event_venue_social, class: SBF::Client::Event::Venue::Social do
|
5
|
+
skip_create
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
after :build do |social, evaluator|
|
12
|
+
social.facebook_url = "https://www.facebook.com/#{Faker::Internet.slug}" if unpopulated?(evaluator, :facebook_url)
|
13
|
+
social.twitter_name = "@#{Faker::Twitter.screen_name.slice(0, 14)}" if unpopulated?(evaluator, :twitter_name)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :event_venue, class: SBF::Client::Event::Venue do
|
5
|
+
skip_create
|
6
|
+
|
7
|
+
initialize_with do
|
8
|
+
new(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
after :build do |venue, evaluator|
|
12
|
+
venue.location = build(:event_venue_location) if unpopulated?(evaluator, :location)
|
13
|
+
venue.social = build(:event_venue_social) if unpopulated?(evaluator, :social)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require_relative 'lib/helpers'
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :event, class: SBF::Client::FullEvent do
|
5
|
+
# TODO: Hack - including organizers in the save's with should not be necessary. We should always include any dirty data
|
6
|
+
# we send to the api in the with so that we know we have the latest data. Fix and remove the with
|
7
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save(organizers: nil) }
|
8
|
+
|
9
|
+
initialize_with do
|
10
|
+
new(attributes)
|
11
|
+
end
|
12
|
+
|
13
|
+
event_title { "#{Faker::Team.name} #{random}" }
|
14
|
+
year { Time.now.year }
|
15
|
+
date { Time.now.to_s }
|
16
|
+
fund_relationship_type { 'no_association' }
|
17
|
+
status { 'active' }
|
18
|
+
type { 'head_shaving' }
|
19
|
+
sub_type { 'community' }
|
20
|
+
how_created { 'admin_control_panel' }
|
21
|
+
fundraising_goal { rand(20) * 5000 }
|
22
|
+
is_private { false }
|
23
|
+
|
24
|
+
after :build do |event, evaluator|
|
25
|
+
event.venue = build(:event_venue) if unpopulated?(evaluator, :venue)
|
26
|
+
event.contacts = build(:event_contacts) if unpopulated?(evaluator, :contacts)
|
27
|
+
event.organizers = [build(:lead_organizer, person: create(:person))] if unpopulated?(evaluator, :organizers)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
factory :event_activity, class: SBF::Client::Event::Activity do
|
32
|
+
skip_create
|
33
|
+
|
34
|
+
initialize_with do
|
35
|
+
new(attributes)
|
36
|
+
end
|
37
|
+
|
38
|
+
start_time { '12:00:00' }
|
39
|
+
end_time { '14:00:00' }
|
40
|
+
activity { random }
|
41
|
+
sort_order { 1 }
|
42
|
+
end
|
43
|
+
end
|