Enhanced tests.
This commit is contained in:
parent
671f513461
commit
c3743682ec
6 changed files with 340 additions and 30 deletions
|
@ -149,6 +149,15 @@ class Transaction::ClearbitEnrichment
|
|||
# create new organization
|
||||
if !external_syn_organization
|
||||
|
||||
# if organization is already assigned, do not create a new one
|
||||
if user.organization_id
|
||||
if user_has_changed
|
||||
user.save
|
||||
Observer::Transaction.commit
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
# can't create organization without name
|
||||
if organization_sync_values['organization.name'].empty?
|
||||
Observer::Transaction.commit
|
||||
|
|
96
test/fixtures/clearbit/testing3@znuny.com.json
vendored
Normal file
96
test/fixtures/clearbit/testing3@znuny.com.json
vendored
Normal file
|
@ -0,0 +1,96 @@
|
|||
{
|
||||
"person": null,
|
||||
"company": {
|
||||
"id": "273d8666-9d70-43dc-836b-a47a88293905-3",
|
||||
"name": "Znuny / ES for OTRS",
|
||||
"legalName": null,
|
||||
"domain": "znuny.com",
|
||||
"domainAliases": [
|
||||
"znuny.de"
|
||||
],
|
||||
"url": "http://znuny.com",
|
||||
"site": {
|
||||
"url": "http://znuny.com",
|
||||
"title": "Support, Consulting, Development and Training for OTRS - Znuny GmbH",
|
||||
"h1": "We make OTRS support easy!",
|
||||
"metaDescription": "OTRS Support, Consulting, Development, Training and Customizing - Znuny GmbH",
|
||||
"metaAuthor": null,
|
||||
"phoneNumbers": [
|
||||
"+49 30 6098541",
|
||||
"+49 4107 15880339",
|
||||
"+49 8601 81017925",
|
||||
"+49 4107 15880186",
|
||||
"+49 8602 16139061"
|
||||
],
|
||||
"emailAddresses": [
|
||||
"info@znuny.com"
|
||||
]
|
||||
},
|
||||
"category": {
|
||||
"sector": "Industrials",
|
||||
"industryGroup": "Commercial & Professional Services",
|
||||
"industry": "Professional Services",
|
||||
"subIndustry": "Consulting"
|
||||
},
|
||||
"tags": [
|
||||
"Consulting & Professional Services",
|
||||
"Corporate & Business",
|
||||
"Information Technology & Services"
|
||||
],
|
||||
"description": "OTRS Support, Consulting, Development, Training and Customizing - Znuny GmbH",
|
||||
"foundedDate": null,
|
||||
"location": "Marienstraße 11, 10117 Berlin, Germany",
|
||||
"timeZone": "Europe/Berlin",
|
||||
"utcOffset": 2,
|
||||
"geo": {
|
||||
"streetNumber": "11",
|
||||
"streetName": "Marienstraße",
|
||||
"subPremise": null,
|
||||
"city": "Berlin",
|
||||
"postalCode": "10117",
|
||||
"state": "Berlin",
|
||||
"stateCode": "Berlin",
|
||||
"country": "Germany",
|
||||
"countryCode": "DE",
|
||||
"lat": 52.52182,
|
||||
"lng": 13.38268
|
||||
},
|
||||
"logo": "https://logo.clearbit.com/znuny.com",
|
||||
"facebook": {
|
||||
"handle": null
|
||||
},
|
||||
"linkedin": {
|
||||
"handle": "company/znuny-gmbh"
|
||||
},
|
||||
"twitter": {
|
||||
"handle": "znuny",
|
||||
"id": "293437546",
|
||||
"bio": "Enterprise Services for OTRS! We love to do what we can do!",
|
||||
"followers": 85,
|
||||
"following": 63,
|
||||
"location": "Berlin",
|
||||
"site": "http://t.co/miuzrhoHeG",
|
||||
"avatar": "https://pbs.twimg.com/profile_images/2460325455/hix7so4b0h0miq9gwkw8_normal.png"
|
||||
},
|
||||
"crunchbase": {
|
||||
"handle": null
|
||||
},
|
||||
"emailProvider": false,
|
||||
"type": "private",
|
||||
"ticker": null,
|
||||
"phone": null,
|
||||
"metrics": {
|
||||
"alexaUsRank": null,
|
||||
"alexaGlobalRank": 10086408,
|
||||
"googleRank": 3,
|
||||
"employees": null,
|
||||
"marketCap": null,
|
||||
"raised": null,
|
||||
"annualRevenue": null
|
||||
},
|
||||
"tech": [
|
||||
"google_analytics",
|
||||
"ruby_on_rails"
|
||||
]
|
||||
}
|
||||
}
|
38
test/fixtures/clearbit/testing4@znuny.com.json
vendored
38
test/fixtures/clearbit/testing4@znuny.com.json
vendored
|
@ -1,16 +1,40 @@
|
|||
{
|
||||
"person": null,
|
||||
"person": {
|
||||
"id": "4db7cfeb-8017-4aac-b4b9-debb6d3142c0-4",
|
||||
"name": {
|
||||
"fullName": "Fred Jupiter",
|
||||
"givenName": "Fred",
|
||||
"familyName": "Jupiter"
|
||||
},
|
||||
"email": "testing4@znuny.com",
|
||||
"gender": null,
|
||||
"location": "Berlin, Berlin, DE",
|
||||
"timeZone": "Europe/Berlin",
|
||||
"utcOffset": 2,
|
||||
"geo": {
|
||||
"city": "Berlin",
|
||||
"state": "Berlin",
|
||||
"stateCode": "Berlin",
|
||||
"country": "Germany",
|
||||
"countryCode": "DE",
|
||||
"lat": 52.52000659999999,
|
||||
"lng": 13.404954
|
||||
},
|
||||
"bio": "some_fred_bio",
|
||||
"site": "http://example.com/",
|
||||
"avatar": "https://d1ts43dypk8bqh.cloudfront.net/v1/avatars/4db7cfeb-8017-4aac-b4b9-debb6d3142c0"
|
||||
},
|
||||
"company": {
|
||||
"id": "273d8666-9d70-43dc-836b-a47a88293905",
|
||||
"name": "Znuny / ES for OTRS",
|
||||
"id": "273d8666-9d70-43dc-836b-a47a88293905-4",
|
||||
"name": "ZnunyOfFred",
|
||||
"legalName": null,
|
||||
"domain": "znuny.com",
|
||||
"domain": "fred.znuny.com",
|
||||
"domainAliases": [
|
||||
"znuny.de"
|
||||
],
|
||||
"url": "http://znuny.com",
|
||||
"url": "http://fred.znuny.com",
|
||||
"site": {
|
||||
"url": "http://znuny.com",
|
||||
"url": "http://fred.znuny.com",
|
||||
"title": "Support, Consulting, Development and Training for OTRS - Znuny GmbH",
|
||||
"h1": "We make OTRS support easy!",
|
||||
"metaDescription": "OTRS Support, Consulting, Development, Training and Customizing - Znuny GmbH",
|
||||
|
@ -37,7 +61,7 @@
|
|||
"Corporate & Business",
|
||||
"Information Technology & Services"
|
||||
],
|
||||
"description": "OTRS Support, Consulting, Development, Training and Customizing - Znuny GmbH",
|
||||
"description": "ZnunyOfFred GmbH",
|
||||
"foundedDate": null,
|
||||
"location": "Marienstraße 11, 10117 Berlin, Germany",
|
||||
"timeZone": "Europe/Berlin",
|
||||
|
|
18
test/fixtures/clearbit/testing5@znuny.com.json
vendored
18
test/fixtures/clearbit/testing5@znuny.com.json
vendored
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"person": {
|
||||
"id": "4db7cfeb-8017-4aac-b4b9-debb6d3142c0-1",
|
||||
"id": "4db7cfeb-8017-4aac-b4b9-debb6d3142c0-5",
|
||||
"name": {
|
||||
"fullName": "Bob Smith",
|
||||
"givenName": "Bob",
|
||||
"familyName": "Smith"
|
||||
"fullName": "Alex Dont",
|
||||
"givenName": "Alex",
|
||||
"familyName": "Dont"
|
||||
},
|
||||
"email": "testing5@znuny.com",
|
||||
"gender": null,
|
||||
|
@ -20,14 +20,14 @@
|
|||
"lat": 52.52000659999999,
|
||||
"lng": 13.404954
|
||||
},
|
||||
"bio": "some_bio",
|
||||
"bio": "some_bio_alex",
|
||||
"site": "http://example.com/",
|
||||
"avatar": "https://d1ts43dypk8bqh.cloudfront.net/v1/avatars/4db7cfeb-8017-4aac-b4b9-debb6d3142c0"
|
||||
},
|
||||
"company": {
|
||||
"id": "273d8666-9d70-43dc-836b-a47a88293905",
|
||||
"name": "Znuny2",
|
||||
"legalName": null,
|
||||
"id": "273d8666-9d70-43dc-836b-a47a88293905-3",
|
||||
"name": "Znuny / ES for OTRS",
|
||||
"legalName": "Znuny GmbH",
|
||||
"domain": "znuny.com",
|
||||
"domainAliases": [
|
||||
"znuny.de"
|
||||
|
@ -61,7 +61,7 @@
|
|||
"Corporate & Business",
|
||||
"Information Technology & Services"
|
||||
],
|
||||
"description": "Znuny2 GmbH",
|
||||
"description": "OTRS Support, Consulting, Development, Training and Customizing - Znuny GmbH",
|
||||
"foundedDate": null,
|
||||
"location": "Marienstraße 11, 10117 Berlin, Germany",
|
||||
"timeZone": "Europe/Berlin",
|
||||
|
|
120
test/fixtures/clearbit/testing6@znuny.com.json
vendored
Normal file
120
test/fixtures/clearbit/testing6@znuny.com.json
vendored
Normal file
|
@ -0,0 +1,120 @@
|
|||
{
|
||||
"person": {
|
||||
"id": "4db7cfeb-8017-4aac-b4b9-debb6d3142c0-5",
|
||||
"name": {
|
||||
"fullName": "Bob Smith",
|
||||
"givenName": "Bob",
|
||||
"familyName": "Smith"
|
||||
},
|
||||
"email": "testing6@znuny.com",
|
||||
"gender": null,
|
||||
"location": "Berlin, Berlin, DE",
|
||||
"timeZone": "Europe/Berlin",
|
||||
"utcOffset": 2,
|
||||
"geo": {
|
||||
"city": "Berlin",
|
||||
"state": "Berlin",
|
||||
"stateCode": "Berlin",
|
||||
"country": "Germany",
|
||||
"countryCode": "DE",
|
||||
"lat": 52.52000659999999,
|
||||
"lng": 13.404954
|
||||
},
|
||||
"bio": "some_bio",
|
||||
"site": "http://example.com/",
|
||||
"avatar": "https://d1ts43dypk8bqh.cloudfront.net/v1/avatars/4db7cfeb-8017-4aac-b4b9-debb6d3142c0"
|
||||
},
|
||||
"company": {
|
||||
"id": "273d8666-9d70-43dc-836b-a47a88293905-5",
|
||||
"name": "Znuny2",
|
||||
"legalName": null,
|
||||
"domain": "znuny.com",
|
||||
"domainAliases": [
|
||||
"znuny.de"
|
||||
],
|
||||
"url": "http://znuny.com",
|
||||
"site": {
|
||||
"url": "http://znuny.com",
|
||||
"title": "Support, Consulting, Development and Training for OTRS - Znuny GmbH",
|
||||
"h1": "We make OTRS support easy!",
|
||||
"metaDescription": "OTRS Support, Consulting, Development, Training and Customizing - Znuny GmbH",
|
||||
"metaAuthor": null,
|
||||
"phoneNumbers": [
|
||||
"+49 30 6098541",
|
||||
"+49 4107 15880339",
|
||||
"+49 8601 81017925",
|
||||
"+49 4107 15880186",
|
||||
"+49 8602 16139061"
|
||||
],
|
||||
"emailAddresses": [
|
||||
"info@znuny.com"
|
||||
]
|
||||
},
|
||||
"category": {
|
||||
"sector": "Industrials",
|
||||
"industryGroup": "Commercial & Professional Services",
|
||||
"industry": "Professional Services",
|
||||
"subIndustry": "Consulting"
|
||||
},
|
||||
"tags": [
|
||||
"Consulting & Professional Services",
|
||||
"Corporate & Business",
|
||||
"Information Technology & Services"
|
||||
],
|
||||
"description": "Znuny2 GmbH",
|
||||
"foundedDate": null,
|
||||
"location": "Marienstraße 11, 10117 Berlin, Germany",
|
||||
"timeZone": "Europe/Berlin",
|
||||
"utcOffset": 2,
|
||||
"geo": {
|
||||
"streetNumber": "11",
|
||||
"streetName": "Marienstraße",
|
||||
"subPremise": null,
|
||||
"city": "Berlin",
|
||||
"postalCode": "10117",
|
||||
"state": "Berlin",
|
||||
"stateCode": "Berlin",
|
||||
"country": "Germany",
|
||||
"countryCode": "DE",
|
||||
"lat": 52.52182,
|
||||
"lng": 13.38268
|
||||
},
|
||||
"logo": "https://logo.clearbit.com/znuny.com",
|
||||
"facebook": {
|
||||
"handle": null
|
||||
},
|
||||
"linkedin": {
|
||||
"handle": "company/znuny-gmbh"
|
||||
},
|
||||
"twitter": {
|
||||
"handle": "znuny",
|
||||
"id": "293437546",
|
||||
"bio": "Enterprise Services for OTRS! We love to do what we can do!",
|
||||
"followers": 85,
|
||||
"following": 63,
|
||||
"location": "Berlin",
|
||||
"site": "http://t.co/miuzrhoHeG",
|
||||
"avatar": "https://pbs.twimg.com/profile_images/2460325455/hix7so4b0h0miq9gwkw8_normal.png"
|
||||
},
|
||||
"crunchbase": {
|
||||
"handle": null
|
||||
},
|
||||
"emailProvider": false,
|
||||
"type": "private",
|
||||
"ticker": null,
|
||||
"phone": null,
|
||||
"metrics": {
|
||||
"alexaUsRank": null,
|
||||
"alexaGlobalRank": 10086408,
|
||||
"googleRank": 3,
|
||||
"employees": null,
|
||||
"marketCap": null,
|
||||
"raised": null,
|
||||
"annualRevenue": null
|
||||
},
|
||||
"tech": [
|
||||
"google_analytics",
|
||||
"ruby_on_rails"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -160,7 +160,7 @@ class ClearbitTest < ActiveSupport::TestCase
|
|||
customer3 = User.create(
|
||||
firstname: '',
|
||||
lastname: '',
|
||||
email: 'testing4@znuny.com',
|
||||
email: 'testing3@znuny.com',
|
||||
note: '',
|
||||
updated_by_id: 1,
|
||||
created_by_id: 1,
|
||||
|
@ -186,12 +186,13 @@ class ClearbitTest < ActiveSupport::TestCase
|
|||
assert_equal(false, organization3_lookup.shared)
|
||||
assert_equal('OTRS Support, Consulting, Development, Training and Customizing - Znuny GmbH', organization3_lookup.note)
|
||||
|
||||
# case 4 - no person / real api call
|
||||
# case 4 - person with organization but organization is already assigned (own created)
|
||||
customer4 = User.create(
|
||||
firstname: '',
|
||||
lastname: '',
|
||||
email: 'testing5@clearbit.com',
|
||||
email: 'testing4@znuny.com',
|
||||
note: '',
|
||||
organization_id: 1,
|
||||
updated_by_id: 1,
|
||||
created_by_id: 1,
|
||||
)
|
||||
|
@ -200,21 +201,81 @@ class ClearbitTest < ActiveSupport::TestCase
|
|||
Observer::Transaction.commit
|
||||
Delayed::Worker.new.work_off
|
||||
|
||||
assert_not(ExternalSync.find_by(source: 'clearbit', object: 'User', o_id: customer4.id))
|
||||
assert(ExternalSync.find_by(source: 'clearbit', object: 'User', o_id: customer4.id))
|
||||
|
||||
customer4_lookup = User.lookup(id: customer4.id)
|
||||
assert_not_equal(customer4.updated_at, customer4_lookup.updated_at)
|
||||
|
||||
assert_equal('', customer4_lookup.firstname)
|
||||
assert_equal('', customer4_lookup.lastname)
|
||||
assert_equal('', customer4_lookup.note)
|
||||
assert_equal('http://clearbit.com', customer4_lookup.web)
|
||||
assert_equal('', customer4_lookup.address)
|
||||
assert_equal('Fred', customer4_lookup.firstname)
|
||||
assert_equal('Jupiter', customer4_lookup.lastname)
|
||||
assert_equal('some_fred_bio', customer4_lookup.note)
|
||||
assert_equal('http://fred.znuny.com', customer4_lookup.web)
|
||||
assert_equal('Marienstraße 11, 10117 Berlin, Germany', customer4_lookup.address)
|
||||
|
||||
organization4_lookup = Organization.find_by(name: 'Clearbit')
|
||||
assert(ExternalSync.find_by(source: 'clearbit', object: 'Organization', o_id: organization4_lookup.id))
|
||||
assert_equal(false, organization4_lookup.shared)
|
||||
assert_equal('Clearbit provides powerful products and data APIs to help your business grow. Contact enrichment, lead generation, financial compliance, and more...', organization4_lookup.note)
|
||||
organization4_lookup = Organization.find_by(name: 'ZnunyOfFred')
|
||||
assert_not(organization4_lookup)
|
||||
|
||||
# case 5 - person with organization but organization is already assigned (own created)
|
||||
customer5 = User.create(
|
||||
firstname: '',
|
||||
lastname: '',
|
||||
email: 'testing5@znuny.com',
|
||||
note: '',
|
||||
organization_id: organization3_lookup.id,
|
||||
updated_by_id: 1,
|
||||
created_by_id: 1,
|
||||
)
|
||||
assert(customer5)
|
||||
|
||||
Observer::Transaction.commit
|
||||
Delayed::Worker.new.work_off
|
||||
|
||||
assert(ExternalSync.find_by(source: 'clearbit', object: 'User', o_id: customer5.id))
|
||||
|
||||
customer5_lookup = User.lookup(id: customer5.id)
|
||||
assert_not_equal(customer5.updated_at, customer5_lookup.updated_at)
|
||||
|
||||
assert_equal('Alex', customer5_lookup.firstname)
|
||||
assert_equal('Dont', customer5_lookup.lastname)
|
||||
assert_equal('some_bio_alex', customer5_lookup.note)
|
||||
assert_equal('http://znuny.com', customer5_lookup.web)
|
||||
assert_equal('Marienstraße 11, 10117 Berlin, Germany', customer5_lookup.address)
|
||||
|
||||
organization5_lookup = Organization.find_by(name: 'Znuny GmbH')
|
||||
assert_equal(organization3_lookup.id, organization5_lookup.id)
|
||||
assert(ExternalSync.find_by(source: 'clearbit', object: 'Organization', o_id: organization5_lookup.id))
|
||||
assert_equal(false, organization5_lookup.shared)
|
||||
assert_equal('OTRS Support, Consulting, Development, Training and Customizing - Znuny GmbH', organization5_lookup.note)
|
||||
|
||||
# case 6 - no person / real api call
|
||||
customer6 = User.create(
|
||||
firstname: '',
|
||||
lastname: '',
|
||||
email: 'testing6@clearbit.com',
|
||||
note: '',
|
||||
updated_by_id: 1,
|
||||
created_by_id: 1,
|
||||
)
|
||||
assert(customer6)
|
||||
|
||||
Observer::Transaction.commit
|
||||
Delayed::Worker.new.work_off
|
||||
|
||||
assert_not(ExternalSync.find_by(source: 'clearbit', object: 'User', o_id: customer6.id))
|
||||
|
||||
customer6_lookup = User.lookup(id: customer6.id)
|
||||
assert_not_equal(customer6.updated_at, customer6_lookup.updated_at)
|
||||
|
||||
assert_equal('', customer6_lookup.firstname)
|
||||
assert_equal('', customer6_lookup.lastname)
|
||||
assert_equal('', customer6_lookup.note)
|
||||
assert_equal('http://clearbit.com', customer6_lookup.web)
|
||||
assert_equal('', customer6_lookup.address)
|
||||
|
||||
organization6_lookup = Organization.find_by(name: 'Clearbit')
|
||||
assert(ExternalSync.find_by(source: 'clearbit', object: 'Organization', o_id: organization6_lookup.id))
|
||||
assert_equal(false, organization6_lookup.shared)
|
||||
assert_equal('Clearbit provides powerful products and data APIs to help your business grow. Contact enrichment, lead generation, financial compliance, and more...', organization6_lookup.note)
|
||||
|
||||
end
|
||||
|
||||
|
@ -253,7 +314,7 @@ class ClearbitTest < ActiveSupport::TestCase
|
|||
customer1 = User.create(
|
||||
firstname: '',
|
||||
lastname: 'Should be still there',
|
||||
email: 'testing5@znuny.com',
|
||||
email: 'testing6@znuny.com',
|
||||
note: '',
|
||||
updated_by_id: 1,
|
||||
created_by_id: 1,
|
||||
|
|
Loading…
Reference in a new issue