global-registry-bindings 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -336,20 +336,56 @@ RSpec.describe GlobalRegistry::Bindings::Workers::PushRelationshipWorker do
336
336
  let(:community) do
337
337
  create(:community, global_registry_id: '6133f6fe-c63a-425a-bb46-68917c689723', infobase_id: 2345)
338
338
  end
339
- let!(:request) do
340
- stub_request(:put, "https://backend.global-registry.org/entities/#{community.global_registry_id}")
341
- .with(body: { entity: { community: { 'ministry:relationship': {
342
- client_integration_id: community.id, client_updated_at: '2001-02-03 00:00:00',
343
- ministry: '41f767fd-86f4-42e2-8d24-cbc3f697b794'
344
- } }, client_integration_id: community.id } },
345
- query: { full_response: 'true', fields: 'ministry:relationship' })
346
- .to_return(body: file_fixture('put_entities_community_relationship.json'), status: 200)
339
+
340
+ context '\'ministry\' entity_type does not exist' do
341
+ let!(:requests) do
342
+ [stub_request(:get, 'https://backend.global-registry.org/entity_types')
343
+ .with(query: { 'filters[name]' => 'ministry' })
344
+ .to_return(body: file_fixture('get_entity_types.json'), status: 200),
345
+ stub_request(:get, 'https://backend.global-registry.org/entity_types')
346
+ .with(query: { 'filters[name]' => 'community' })
347
+ .to_return(body: file_fixture('get_entity_types_community.json'), status: 200)]
348
+ end
349
+
350
+ it 'should raise an exception' do
351
+ expect do
352
+ worker.push_relationship_to_global_registry
353
+ end.to raise_error(GlobalRegistry::Bindings::RelatedEntityTypeMissing)
354
+ requests.each { |r| expect(r).to have_been_requested.once }
355
+ end
347
356
  end
348
357
 
349
- it 'should push relationship' do
350
- worker.push_relationship_to_global_registry
351
- expect(request).to have_been_requested.once
352
- expect(community.infobase_gr_id).to eq 'ee40f9ed-d625-405b-8ce6-aec821611ec6'
358
+ context '\'ministry\' entity_type does not exist' do
359
+ let!(:requests) do
360
+ [stub_request(:get, 'https://backend.global-registry.org/entity_types')
361
+ .with(query: { 'filters[name]' => 'ministry' })
362
+ .to_return(body: file_fixture('get_entity_types_ministry.json'), status: 200),
363
+ stub_request(:get, 'https://backend.global-registry.org/entity_types')
364
+ .with(query: { 'filters[name]' => 'community' })
365
+ .to_return(body: file_fixture('get_entity_types_community.json'), status: 200),
366
+ stub_request(:get, 'https://backend.global-registry.org/relationship_types')
367
+ .with(query: { 'filters[between]' =>
368
+ '3d8a68df-72f3-45f0-848b-4a6322448a6c,f0f0876b-0ebe-4680-9e48-1c3b72523d07' })
369
+ .to_return(body: file_fixture('get_relationship_types.json'), status: 200),
370
+ stub_request(:post, 'https://backend.global-registry.org/relationship_types')
371
+ .with(body: { relationship_type: { entity_type1_id: '3d8a68df-72f3-45f0-848b-4a6322448a6c',
372
+ entity_type2_id: 'f0f0876b-0ebe-4680-9e48-1c3b72523d07',
373
+ relationship1: 'community', relationship2: 'ministry' } })
374
+ .to_return(body: file_fixture('post_relationship_types_community_ministry.json'), status: 200),
375
+ stub_request(:put, "https://backend.global-registry.org/entities/#{community.global_registry_id}")
376
+ .with(body: { entity: { community: { 'ministry:relationship': {
377
+ client_integration_id: community.id, client_updated_at: '2001-02-03 00:00:00',
378
+ ministry: '41f767fd-86f4-42e2-8d24-cbc3f697b794'
379
+ } }, client_integration_id: community.id } },
380
+ query: { full_response: 'true', fields: 'ministry:relationship' })
381
+ .to_return(body: file_fixture('put_entities_community_relationship.json'), status: 200)]
382
+ end
383
+
384
+ it 'should raise an exception' do
385
+ worker.push_relationship_to_global_registry
386
+ requests.each { |r| expect(r).to have_been_requested.once }
387
+ expect(community.infobase_gr_id).to eq('ee40f9ed-d625-405b-8ce6-aec821611ec6')
388
+ end
353
389
  end
354
390
  end
355
391
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: global-registry-bindings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Zoetewey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-18 00:00:00.000000000 Z
11
+ date: 2017-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -333,8 +333,10 @@ files:
333
333
  - spec/fixtures/get_entity_types_address.json
334
334
  - spec/fixtures/get_entity_types_address_partial.json
335
335
  - spec/fixtures/get_entity_types_area.json
336
+ - spec/fixtures/get_entity_types_community.json
336
337
  - spec/fixtures/get_entity_types_fancy_org.json
337
338
  - spec/fixtures/get_entity_types_fancy_org_partial.json
339
+ - spec/fixtures/get_entity_types_ministry.json
338
340
  - spec/fixtures/get_entity_types_person.json
339
341
  - spec/fixtures/get_entity_types_person_partial.json
340
342
  - spec/fixtures/get_relationship_types.json
@@ -347,6 +349,7 @@ files:
347
349
  - spec/fixtures/post_entity_types_address.json
348
350
  - spec/fixtures/post_entity_types_fancy_org.json
349
351
  - spec/fixtures/post_entity_types_person.json
352
+ - spec/fixtures/post_relationship_types_community_ministry.json
350
353
  - spec/fixtures/post_relationship_types_fancy_org_area.json
351
354
  - spec/fixtures/post_relationship_types_person_fancy_org.json
352
355
  - spec/fixtures/put_entities_address.json
@@ -419,8 +422,10 @@ test_files:
419
422
  - spec/fixtures/get_entity_types_address.json
420
423
  - spec/fixtures/get_entity_types_address_partial.json
421
424
  - spec/fixtures/get_entity_types_area.json
425
+ - spec/fixtures/get_entity_types_community.json
422
426
  - spec/fixtures/get_entity_types_fancy_org.json
423
427
  - spec/fixtures/get_entity_types_fancy_org_partial.json
428
+ - spec/fixtures/get_entity_types_ministry.json
424
429
  - spec/fixtures/get_entity_types_person.json
425
430
  - spec/fixtures/get_entity_types_person_partial.json
426
431
  - spec/fixtures/get_relationship_types.json
@@ -433,6 +438,7 @@ test_files:
433
438
  - spec/fixtures/post_entity_types_address.json
434
439
  - spec/fixtures/post_entity_types_fancy_org.json
435
440
  - spec/fixtures/post_entity_types_person.json
441
+ - spec/fixtures/post_relationship_types_community_ministry.json
436
442
  - spec/fixtures/post_relationship_types_fancy_org_area.json
437
443
  - spec/fixtures/post_relationship_types_person_fancy_org.json
438
444
  - spec/fixtures/put_entities_address.json