class OpenStax::Salesforce::SpecHelpers::SalesforceProxy
Public Class Methods
new()
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 61 def initialize # For cassette consistency, to ensure specs always get new tokens ActiveForce.clear_sfdc_client! end
Public Instance Methods
book(name)
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 155 def book(name) books.find { |bb| bb.name == name } end
book_id(name)
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 159 def book_id(name) book(name).id end
books()
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 151 def books @books ||= OpenStax::Salesforce::Remote::Book.all end
clear_unique_token()
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 71 def clear_unique_token @unique_token = nil end
ensure_books_exist(book_names)
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 133 def ensure_books_exist(book_names) @books = OpenStax::Salesforce::Remote::Book.where(name: book_names).to_a (book_names - books.map(&:name)).each do |book_name| OpenStax::Salesforce::Remote::Book.new( name: book_name, annualization_number: [ 1.4, 1.6 ].sample ).save! end end
ensure_schools_exist(school_names)
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 143 def ensure_schools_exist(school_names) @schools = OpenStax::Salesforce::Remote::School.where(name: school_names).to_a (school_names - schools.map(&:name)).each do |school_name| OpenStax::Salesforce::Remote::School.new(name: school_name).save! end end
last_name!(input)
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 129 def last_name!(input) "#{input || Faker::Name.last_name}#{@unique_token if @unique_token.present?}" end
new_campaign(name: SecureRandom.hex(8))
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 108 def new_campaign(name: SecureRandom.hex(8)) Campaign.new( name: name ).tap do |campaign| if !campaign.save raise "Could not save SF Campaign: #{campaign.errors}" end end end
new_campaign_member(contact_id:, campaign_id:)
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 118 def new_campaign_member(contact_id:, campaign_id:) CampaignMember.new( contact_id: contact_id, campaign_id: campaign_id ).tap do |campaign_member| if !campaign_member.save raise "Could not save SF Campaign Member: #{campaign_member.errors}" end end end
new_contact(first_name: nil, last_name: nil, school_name: "JP University", email: nil, email_alt: nil, faculty_verified: nil, school_type: nil)
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 75 def new_contact(first_name: nil, last_name: nil, school_name: "JP University", email: nil, email_alt: nil, faculty_verified: nil, school_type: nil) ensure_schools_exist([school_name]) Contact.new( first_name: first_name || Faker::Name.first_name, last_name: last_name!(last_name), school_id: school_id(school_name), email: email, email_alt: email_alt, faculty_verified: faculty_verified, school_type: school_type ).tap do |contact| if !contact.save raise "Could not save SF contact: #{contact.errors}" end end end
new_lead(email:, status: nil, last_name: nil, source: nil, school_name: "JP University")
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 94 def new_lead(email:, status: nil, last_name: nil, source: nil, school_name: "JP University") Lead.new( email: email, status: status, last_name: last_name!(last_name), school: school_name, source: source ).tap do |lead| if !lead.save raise "Could not save SF lead: #{lead.errors}" end end end
reset_unique_token(token = SecureRandom.hex(10))
click to toggle source
Used to filter records to the scope of one spec
# File lib/openstax/salesforce/spec_helpers.rb, line 67 def reset_unique_token(token = SecureRandom.hex(10)) @unique_token = token end
school(name)
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 171 def school(name) schools.find { |ss| ss.name == name } end
school_id(name)
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 167 def school_id(name) school(name).try(:id) end
schools()
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 163 def schools @schools ||= OpenStax::Salesforce::Remote::School.all end
setup_cassette()
click to toggle source
# File lib/openstax/salesforce/spec_helpers.rb, line 175 def setup_cassette VCR.configure do |config| config.define_cassette_placeholder('<salesforce_instance_url>') do 'https://example.salesforce.com' end config.define_cassette_placeholder('<salesforce_instance_url_lower>') do 'https://example.salesforce.com' end authentication = ActiveForce.sfdc_client.authenticate! config.define_cassette_placeholder('<salesforce_instance_url>') do authentication.instance_url end config.define_cassette_placeholder('<salesforce_instance_url_lower>') do authentication.instance_url.downcase end config.define_cassette_placeholder('<salesforce_id>') do authentication.id end config.define_cassette_placeholder('<salesforce_access_token>') do authentication.access_token end config.define_cassette_placeholder('<salesforce_signature>') do authentication.signature end end end