maestrano-connector-rails 0.2.15 → 0.2.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 60cc3a0fe4fd749682619befa70df6f687b5e208
4
- data.tar.gz: d5b2db25bda76bb4d5d096a318652a2099715f2f
3
+ metadata.gz: 1ac017da954066c7397861d757d620250c1f9d17
4
+ data.tar.gz: 95034e887a9a9e1ea69c66e397bcc1c9c698e824
5
5
  SHA512:
6
- metadata.gz: aecf4f9d5b7233e6937868b1510d1356ccc4c551fa3fbc0ce8aee7680372f3a3bce4b43d1b0af00941133b598521ce607973abc1d91ed12875dfd70353bb5f10
7
- data.tar.gz: 08f4f20f19fbd49e9627d499d724e1da97c6c34089d99d976c6aaac54c37d9c2d7f4ba7fcbfa39920e677fbc04554c4ec632f174708893882309d8cc83621db2
6
+ metadata.gz: 9f47439af3beb4b4795d47ba4b5a9685ec35557d9aff988f90486d5ed313499752b46b55c2a7e469e93c34ecb6dd200efc2e570ed6d1aca30d395118a6e97aea
7
+ data.tar.gz: 9c91c0d18bb5edde590ce3a63349ac3fcd00fde0f359c30a8bd93d07372316c8998de736fa63a05b78250b1812553d554a12c8ea0c4e81277ef56bd49289402e
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.15
1
+ 0.2.16
@@ -16,7 +16,7 @@ class Maestrano::ConnecController < Maestrano::Rails::WebHookController
16
16
 
17
17
  # Build expected input for consolidate_and_map_data
18
18
  if entity_instance_hash[:is_complex]
19
- mapped_entity = entity_instance.consolidate_and_map_data(Hash[ *entity_instance.connec_entities_names.collect{|name| name == entity_name.singularize ? [name, [entity]] : [ name, []]}.flatten(1) ], Hash[ *entity_instance.external_entities_names.collect{|name| [ name, []]}.flatten(1) ], organization, {})
19
+ mapped_entity = entity_instance.consolidate_and_map_data(Hash[ *entity_instance.connec_entities_names.collect{|name| name.downcase.pluralize == entity_name ? [name, [entity]] : [ name, []]}.flatten(1) ], Hash[ *entity_instance.external_entities_names.collect{|name| [ name, []]}.flatten(1) ], organization, {})
20
20
  else
21
21
  mapped_entity = entity_instance.consolidate_and_map_data([entity], [], organization, {})
22
22
  end
@@ -48,7 +48,7 @@ class Maestrano::ConnecController < Maestrano::Rails::WebHookController
48
48
  if instance.methods.include?('connec_entities_names'.to_sym)
49
49
  return {instance: instance, is_complex: true, name: entity_name_from_list} if instance.connec_entities_names.map{|n| n.pluralize.downcase}.include?(entity_name)
50
50
  elsif instance.methods.include?('connec_entity_name'.to_sym)
51
- return {instance: instance, is_complex: false, name: entity_name_from_list} if instance.connec_entity_name.pluralize.downcase == entity_name
51
+ return {instance: instance, is_complex: false, name: entity_name_from_list} if instance.normalized_connec_entity_name == entity_name
52
52
  end
53
53
  end
54
54
  nil
@@ -6,7 +6,7 @@ module Maestrano::Connector::Rails
6
6
  def perform(organization, entities_hash)
7
7
  return unless organization.sync_enabled && organization.oauth_uid
8
8
 
9
- connec_client = Maestrano::Connec::Client.new(organization.uid)
9
+ connec_client = Maestrano::Connec::Client[organization.tenant].new(organization.uid)
10
10
 
11
11
  entities_hash.each do |external_entity_name, entities|
12
12
  if entity_instance_hash = find_entity_instance(external_entity_name)
@@ -14,7 +14,7 @@ module Maestrano::Connector::Rails
14
14
  next unless organization.synchronized_entities[entity_instance_hash[:name].to_sym]
15
15
 
16
16
  if entity_instance_hash[:is_complex]
17
- mapped_entities = entity_instance.consolidate_and_map_data(Hash[ *entity_instance.connec_entities_names.collect{|name| [ name, []]}.flatten(1) ], Hash[ *entity_instance.external_entities_names.collect{|name| name == external_entity_name.singularize ? [name, entities] : [ name, []]}.flatten(1) ], organization, {})
17
+ mapped_entities = entity_instance.consolidate_and_map_data(Hash[ *entity_instance.connec_entities_names.collect{|name| [ name, []]}.flatten(1) ], Hash[ *entity_instance.external_entities_names.collect{|name| name == external_entity_name ? [name, entities] : [ name, []]}.flatten(1) ], organization, {})
18
18
  else
19
19
  mapped_entities = entity_instance.consolidate_and_map_data([], entities, organization, {})
20
20
  end
@@ -22,7 +22,7 @@ module Maestrano::Connector::Rails
22
22
 
23
23
  begin
24
24
  last_synchronization = Synchronization.where(organization_id: organization.id, status: 'SUCCESS', partial: false).order(updated_at: :desc).first
25
- connec_client = Maestrano::Connec::Client.new(organization.uid)
25
+ connec_client = Maestrano::Connec::Client[organization.tenant].new(organization.uid)
26
26
  external_client = External.get_client(organization)
27
27
 
28
28
  if opts[:only_entities]
@@ -28,6 +28,14 @@ module Maestrano::Connector::Rails::Concerns::Entity
28
28
  # ----------------------------------------------
29
29
  # Connec! methods
30
30
  # ----------------------------------------------
31
+ def normalized_connec_entity_name
32
+ if self.singleton?
33
+ self.connec_entity_name.downcase
34
+ else
35
+ self.connec_entity_name.downcase.pluralize
36
+ end
37
+ end
38
+
31
39
  def get_connec_entities(client, last_synchronization, organization, opts={})
32
40
  Maestrano::Connector::Rails::ConnectorLogger.log('info', organization, "Fetching Connec! #{self.connec_entity_name}")
33
41
 
@@ -36,18 +44,18 @@ module Maestrano::Connector::Rails::Concerns::Entity
36
44
  # Fetch first page
37
45
  if last_synchronization.blank? || opts[:full_sync]
38
46
  Maestrano::Connector::Rails::ConnectorLogger.log('debug', organization, "entity=#{self.connec_entity_name}, fetching all data")
39
- response = client.get("/#{self.connec_entity_name.downcase.pluralize}")
47
+ response = client.get("/#{self.normalized_connec_entity_name}")
40
48
  else
41
49
  Maestrano::Connector::Rails::ConnectorLogger.log('debug', organization, "entity=#{self.connec_entity_name}, fetching data since #{last_synchronization.updated_at.iso8601}")
42
50
  query_param = URI.encode("$filter=updated_at gt '#{last_synchronization.updated_at.iso8601}'")
43
- response = client.get("/#{self.connec_entity_name.downcase.pluralize}?#{query_param}")
51
+ response = client.get("/#{self.normalized_connec_entity_name}?#{query_param}")
44
52
  end
45
53
  raise "No data received from Connec! when trying to fetch #{self.connec_entity_name.pluralize}" unless response
46
54
 
47
55
  response_hash = JSON.parse(response.body)
48
56
  Maestrano::Connector::Rails::ConnectorLogger.log('debug', organization, "received first page entity=#{self.connec_entity_name}, response=#{response.body}")
49
- if response_hash["#{self.connec_entity_name.downcase.pluralize}"]
50
- entities << response_hash["#{self.connec_entity_name.downcase.pluralize}"]
57
+ if response_hash["#{self.normalized_connec_entity_name}"]
58
+ entities << response_hash["#{self.normalized_connec_entity_name}"]
51
59
  else
52
60
  raise "Received unrecognized Connec! data when trying to fetch #{self.connec_entity_name.pluralize}"
53
61
  end
@@ -55,15 +63,15 @@ module Maestrano::Connector::Rails::Concerns::Entity
55
63
  # Fetch subsequent pages
56
64
  while response_hash['pagination'] && response_hash['pagination']['next']
57
65
  # ugly way to convert https://api-connec/api/v2/group_id/organizations?next_page_params to /organizations?next_page_params
58
- next_page = response_hash['pagination']['next'].gsub(/^(.*)\/#{self.connec_entity_name.downcase.pluralize}/, self.connec_entity_name.downcase.pluralize)
66
+ next_page = response_hash['pagination']['next'].gsub(/^(.*)\/#{self.normalized_connec_entity_name}/, self.normalized_connec_entity_name)
59
67
  response = client.get(next_page)
60
68
 
61
69
  raise "No data received from Connec! when trying to fetch subsequent page of #{self.connec_entity_name.pluralize}" unless response
62
70
  Maestrano::Connector::Rails::ConnectorLogger.log('debug', organization, "received next page entity=#{self.connec_entity_name}, response=#{response.body}")
63
71
 
64
72
  response_hash = JSON.parse(response.body)
65
- if response_hash["#{self.connec_entity_name.downcase.pluralize}"]
66
- entities << response_hash["#{self.connec_entity_name.downcase.pluralize}"]
73
+ if response_hash["#{self.normalized_connec_entity_name}"]
74
+ entities << response_hash["#{self.normalized_connec_entity_name}"]
67
75
  else
68
76
  raise "Received unrecognized Connec! data when trying to fetch subsequent page of #{self.connec_entity_name.pluralize}"
69
77
  end
@@ -99,16 +107,16 @@ module Maestrano::Connector::Rails::Concerns::Entity
99
107
 
100
108
  def create_connec_entity(connec_client, mapped_external_entity, connec_entity_name, organization)
101
109
  Maestrano::Connector::Rails::ConnectorLogger.log('info', organization, "Sending create #{connec_entity_name}: #{mapped_external_entity} to Connec!")
102
- response = connec_client.post("/#{connec_entity_name.downcase.pluralize}", { "#{connec_entity_name.downcase.pluralize}".to_sym => mapped_external_entity })
110
+ response = connec_client.post("/#{normalized_connec_entity_name}", { "#{normalized_connec_entity_name}".to_sym => mapped_external_entity })
103
111
  raise "No response received from Connec! when trying to create a #{self.connec_entity_name}" unless response
104
- JSON.parse(response.body)["#{connec_entity_name.downcase.pluralize}"]
112
+ JSON.parse(response.body)["#{normalized_connec_entity_name}"]
105
113
  end
106
114
 
107
115
  def update_connec_entity(connec_client, mapped_external_entity, connec_id, connec_entity_name, organization)
108
116
  Maestrano::Connector::Rails::ConnectorLogger.log('info', organization, "Sending update #{connec_entity_name}: #{mapped_external_entity} to Connec!")
109
- response = connec_client.put("/#{connec_entity_name.downcase.pluralize}/#{connec_id}", { "#{connec_entity_name.downcase.pluralize}".to_sym => mapped_external_entity })
117
+ response = connec_client.put("/#{normalized_connec_entity_name}/#{connec_id}", { "#{normalized_connec_entity_name}".to_sym => mapped_external_entity })
110
118
  raise "No response received from Connec! when trying to update a #{self.connec_entity_name}" unless response
111
- JSON.parse(response.body)["#{connec_entity_name.downcase.pluralize}"]
119
+ JSON.parse(response.body)["#{normalized_connec_entity_name}"]
112
120
  end
113
121
 
114
122
  def map_to_external_with_idmap(entity, organization)
@@ -238,6 +246,10 @@ module Maestrano::Connector::Rails::Concerns::Entity
238
246
  # Entity specific methods
239
247
  # Those methods need to be define in each entity
240
248
  # ----------------------------------------------
249
+ # Is this resource a singleton (in Connec!)?
250
+ def singleton?
251
+ false
252
+ end
241
253
 
242
254
  # Entity name in Connec!
243
255
  def connec_entity_name
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: maestrano-connector-rails 0.2.15 ruby lib
5
+ # stub: maestrano-connector-rails 0.2.16 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "maestrano-connector-rails"
9
- s.version = "0.2.15"
9
+ s.version = "0.2.16"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Pierre Berard"]
14
- s.date = "2016-03-02"
14
+ s.date = "2016-03-07"
15
15
  s.description = "Maestrano is the next generation marketplace for SME applications. See https://maestrano.com for details."
16
16
  s.email = "pierre.berard@maestrano.com"
17
17
  s.executables = ["rails"]
@@ -50,7 +50,7 @@ describe Maestrano::ConnecController, type: :controller do
50
50
  allow(Maestrano::Connector::Rails::Entity).to receive(:entities_list).and_return(%w(contact_and_lead))
51
51
  class Entities::ContactAndLead < Maestrano::Connector::Rails::ComplexEntity
52
52
  def connec_entities_names
53
- %w(lead)
53
+ %w(Lead)
54
54
  end
55
55
  end
56
56
  module Entities::SubEntities end;
@@ -70,7 +70,7 @@ describe Maestrano::ConnecController, type: :controller do
70
70
  let!(:organization) { create(:organization, uid: group_id, oauth_uid: 'lala', sync_enabled: true, synchronized_entities: {contact_and_lead: true}) }
71
71
 
72
72
  it 'process the data and push them' do
73
- expect_any_instance_of(Entities::ContactAndLead).to receive(:consolidate_and_map_data).with({"lead"=>[entity]}, {}, organization, {}).and_return({})
73
+ expect_any_instance_of(Entities::ContactAndLead).to receive(:consolidate_and_map_data).with({"Lead"=>[entity]}, {}, organization, {}).and_return({})
74
74
  expect_any_instance_of(Entities::ContactAndLead).to receive(:push_entities_to_external)
75
75
  subject
76
76
  end
@@ -84,7 +84,7 @@ describe Maestrano::ConnecController, type: :controller do
84
84
  allow(Maestrano::Connector::Rails::Entity).to receive(:entities_list).and_return(%w(person))
85
85
  class Entities::Person < Maestrano::Connector::Rails::Entity
86
86
  def connec_entity_name
87
- 'person'
87
+ 'People'
88
88
  end
89
89
  end
90
90
  }
@@ -17,7 +17,7 @@ describe Maestrano::Connector::Rails::PushToConnecJob do
17
17
  allow_any_instance_of(Entities::Entity2).to receive(:consolidate_and_map_data).and_return({})
18
18
  allow_any_instance_of(Entities::Entity2).to receive(:push_entities_to_connec)
19
19
  allow_any_instance_of(Entities::Entity2).to receive(:connec_entities_names).and_return(%w())
20
- allow_any_instance_of(Entities::Entity2).to receive(:external_entities_names).and_return(%w(sub ll))
20
+ allow_any_instance_of(Entities::Entity2).to receive(:external_entities_names).and_return(%w(Subs ll))
21
21
  module Entities::SubEntities end;
22
22
  class Entities::SubEntities::Sub < Maestrano::Connector::Rails::SubEntityBase
23
23
  end
@@ -27,7 +27,7 @@ describe Maestrano::Connector::Rails::PushToConnecJob do
27
27
  let(:entity11) { {first_name: 'John'} }
28
28
  let(:entity12) { {first_name: 'Jane'} }
29
29
  let(:entity21) { {job: 'Pizza guy'} }
30
- let(:hash) { {'ext_entity1' => [entity11, entity12], 'sub' => [entity21]} }
30
+ let(:hash) { {'ext_entity1' => [entity11, entity12], 'Subs' => [entity21]} }
31
31
  subject { Maestrano::Connector::Rails::PushToConnecJob.perform_now(organization, hash) }
32
32
 
33
33
  describe 'with organization sync enabled set to false' do
@@ -66,7 +66,7 @@ describe Maestrano::Connector::Rails::PushToConnecJob do
66
66
  before { organization.update(synchronized_entities: {:"#{entity_name1}" => false, :"#{entity_name2}" => true})}
67
67
 
68
68
  it 'calls consolidate and map data on the complex entity with the right arguments' do
69
- expect_any_instance_of(Entities::Entity2).to receive(:consolidate_and_map_data).with({}, {"sub"=>[entity21], "ll"=>[]}, organization, {})
69
+ expect_any_instance_of(Entities::Entity2).to receive(:consolidate_and_map_data).with({}, {"Subs"=>[entity21], "ll"=>[]}, organization, {})
70
70
  expect_any_instance_of(Entities::Entity2).to receive(:push_entities_to_connec)
71
71
  subject
72
72
  end
@@ -43,59 +43,91 @@ describe Maestrano::Connector::Rails::Entity do
43
43
  describe 'connec_methods' do
44
44
  let(:organization) { create(:organization) }
45
45
  let(:client) { Maestrano::Connec::Client.new(organization.uid) }
46
- let(:connec_name) { 'person' }
46
+ let(:connec_name) { 'Person' }
47
47
  let(:external_name) { 'external_name' }
48
48
  let(:sync) { create(:synchronization) }
49
49
  before {
50
50
  allow(subject).to receive(:connec_entity_name).and_return(connec_name)
51
51
  }
52
52
 
53
- describe 'get_connec_entities' do
53
+ describe 'normalized_connec_entity_name' do
54
+ context 'for a singleton resource' do
55
+ before {
56
+ allow(subject).to receive(:singleton?).and_return(true)
57
+ }
54
58
 
55
- describe 'with response' do
59
+ it { expect(subject.normalized_connec_entity_name).to eql('person') }
60
+ end
61
+
62
+ context 'for a non singleton resource' do
56
63
  before {
57
- allow(client).to receive(:get).and_return(ActionDispatch::Response.new(200, {}, {people: []}.to_json, {}))
64
+ allow(subject).to receive(:singleton?).and_return(false)
58
65
  }
59
66
 
60
- context 'when opts[:full_sync] is true' do
61
- it 'performs a full get' do
62
- expect(client).to receive(:get).with("/#{connec_name.downcase.pluralize}")
63
- subject.get_connec_entities(client, nil, organization, {full_sync: true})
64
- end
65
- end
67
+ it { expect(subject.normalized_connec_entity_name).to eql('people') }
68
+ end
69
+ end
66
70
 
67
- context 'when there is no last sync' do
68
- it 'performs a full get' do
69
- expect(client).to receive(:get).with("/#{connec_name.downcase.pluralize}")
70
- subject.get_connec_entities(client, nil, organization)
71
- end
72
- end
71
+ describe 'get_connec_entities' do
72
+
73
+ describe 'with response' do
74
+ context 'for a singleton resource' do
75
+ before {
76
+ allow(client).to receive(:get).and_return(ActionDispatch::Response.new(200, {}, {person: []}.to_json, {}))
77
+ allow(subject).to receive(:singleton?).and_return(true)
78
+ }
73
79
 
74
- context 'when there is a last sync' do
75
- it 'performs a time limited get' do
76
- uri_param = URI.encode("$filter=updated_at gt '#{sync.updated_at.iso8601}'")
77
- expect(client).to receive(:get).with("/#{connec_name.downcase.pluralize}?#{uri_param}")
78
- subject.get_connec_entities(client, sync, organization)
80
+ it 'calls get with a singularize url' do
81
+ expect(client).to receive(:get).with("/#{connec_name.downcase}")
82
+ subject.get_connec_entities(client, nil, organization)
79
83
  end
80
84
  end
81
85
 
82
- context 'with pagination' do
86
+ context 'for a non singleton resource' do
83
87
  before {
84
- allow(client).to receive(:get).and_return(ActionDispatch::Response.new(200, {}, {people: [], pagination: {next: "https://api-connec.maestrano.com/api/v2/cld-dkg601/people?%24skip=10&%24top=10"}}.to_json, {}), ActionDispatch::Response.new(200, {}, {people: []}.to_json, {}))
88
+ allow(client).to receive(:get).and_return(ActionDispatch::Response.new(200, {}, {people: []}.to_json, {}))
85
89
  }
86
90
 
87
- it 'calls get multiple times' do
88
- expect(client).to receive(:get).twice
89
- subject.get_connec_entities(client, nil, organization)
91
+ context 'when opts[:full_sync] is true' do
92
+ it 'performs a full get' do
93
+ expect(client).to receive(:get).with("/#{connec_name.downcase.pluralize}")
94
+ subject.get_connec_entities(client, nil, organization, {full_sync: true})
95
+ end
96
+ end
97
+
98
+ context 'when there is no last sync' do
99
+ it 'performs a full get' do
100
+ expect(client).to receive(:get).with("/#{connec_name.downcase.pluralize}")
101
+ subject.get_connec_entities(client, nil, organization)
102
+ end
103
+ end
104
+
105
+ context 'when there is a last sync' do
106
+ it 'performs a time limited get' do
107
+ uri_param = URI.encode("$filter=updated_at gt '#{sync.updated_at.iso8601}'")
108
+ expect(client).to receive(:get).with("/#{connec_name.downcase.pluralize}?#{uri_param}")
109
+ subject.get_connec_entities(client, sync, organization)
110
+ end
90
111
  end
91
- end
92
112
 
93
- context 'with an actual response' do
94
- let(:people) { [{first_name: 'John'}, {last_name: 'Durand'}, {job_title: 'Engineer'}] }
113
+ context 'with pagination' do
114
+ before {
115
+ allow(client).to receive(:get).and_return(ActionDispatch::Response.new(200, {}, {people: [], pagination: {next: "https://api-connec.maestrano.com/api/v2/cld-dkg601/people?%24skip=10&%24top=10"}}.to_json, {}), ActionDispatch::Response.new(200, {}, {people: []}.to_json, {}))
116
+ }
95
117
 
96
- it 'returns an array of entities' do
97
- allow(client).to receive(:get).and_return(ActionDispatch::Response.new(200, {}, {people: people}.to_json, {}))
98
- expect(subject.get_connec_entities(client, nil, organization)).to eql(JSON.parse(people.to_json))
118
+ it 'calls get multiple times' do
119
+ expect(client).to receive(:get).twice
120
+ subject.get_connec_entities(client, nil, organization)
121
+ end
122
+ end
123
+
124
+ context 'with an actual response' do
125
+ let(:people) { [{first_name: 'John'}, {last_name: 'Durand'}, {job_title: 'Engineer'}] }
126
+
127
+ it 'returns an array of entities' do
128
+ allow(client).to receive(:get).and_return(ActionDispatch::Response.new(200, {}, {people: people}.to_json, {}))
129
+ expect(subject.get_connec_entities(client, nil, organization)).to eql(JSON.parse(people.to_json))
130
+ end
99
131
  end
100
132
  end
101
133
  end
@@ -141,7 +173,7 @@ describe Maestrano::Connector::Rails::Entity do
141
173
  expect(idmap1.last_push_to_connec).to_not eql(old_push_date)
142
174
  idmap2.reload
143
175
  expect(idmap2.connec_id).to eql(id)
144
- expect(idmap2.connec_entity).to eql(connec_name)
176
+ expect(idmap2.connec_entity).to eql(connec_name.downcase)
145
177
  expect(idmap2.last_push_to_connec).to_not be_nil
146
178
  end
147
179
  end
@@ -155,7 +187,7 @@ describe Maestrano::Connector::Rails::Entity do
155
187
  }
156
188
 
157
189
  it 'sends a post to connec' do
158
- expect(client).to receive(:post).with("/#{connec_name.pluralize}", {"#{connec_name.pluralize}".to_sym => entity})
190
+ expect(client).to receive(:post).with("/#{connec_name.downcase.pluralize}", {"#{connec_name.downcase.pluralize}".to_sym => entity})
159
191
  subject.create_connec_entity(client, entity, connec_name, organization)
160
192
  end
161
193
 
@@ -183,7 +215,7 @@ describe Maestrano::Connector::Rails::Entity do
183
215
  }
184
216
 
185
217
  it 'sends a put to connec' do
186
- expect(client).to receive(:put).with("/#{connec_name.pluralize}/#{id}", {"#{connec_name.pluralize}".to_sym => entity})
218
+ expect(client).to receive(:put).with("/#{connec_name.downcase.pluralize}/#{id}", {"#{connec_name.downcase.pluralize}".to_sym => entity})
187
219
  subject.update_connec_entity(client, entity, id, connec_name, organization)
188
220
  end
189
221
  end
@@ -206,7 +238,7 @@ describe Maestrano::Connector::Rails::Entity do
206
238
  }
207
239
 
208
240
  context 'when entity has an idmap' do
209
- let!(:idmap) { create(:idmap, organization: organization, connec_entity: connec_name, connec_id: id, last_push_to_external: 3.hour.ago)}
241
+ let!(:idmap) { create(:idmap, organization: organization, connec_entity: connec_name.downcase, connec_id: id, last_push_to_external: 3.hour.ago)}
210
242
 
211
243
  context 'when updated_at field is most recent than idmap last_push_to_external' do
212
244
  let(:entity) { {'id' => id, 'name' => 'John', 'updated_at' => 2.hour.ago } }
@@ -459,6 +491,12 @@ describe Maestrano::Connector::Rails::Entity do
459
491
 
460
492
 
461
493
  # Entity specific methods
494
+ describe 'singleton?' do
495
+ it 'is false by default' do
496
+ expect(subject.singleton?).to be false
497
+ end
498
+ end
499
+
462
500
  describe 'connec_entity_name' do
463
501
  it { expect{ subject.connec_entity_name }.to raise_error('Not implemented') }
464
502
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maestrano-connector-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.15
4
+ version: 0.2.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pierre Berard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-02 00:00:00.000000000 Z
11
+ date: 2016-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maestrano-rails