leap_salesforce 0.1.9 → 0.1.11

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
  SHA256:
3
- metadata.gz: b19edc03763b60a2d097dde77935d9db5c5aed17ee22d0c3978f695a861cf603
4
- data.tar.gz: 7c6487aa730adc662ab69109aa9a0f49270746e2dfd06b15989c5fb064b5693e
3
+ metadata.gz: 0643c6bdb99cf5d5ab3c1daa4993be2d57405e8beca02b4554188b260cf35c38
4
+ data.tar.gz: 2aadf0ffb313f32e35280794de1a182ca3e9567b1753c878493ac24180069658
5
5
  SHA512:
6
- metadata.gz: 5c9b6f9ed699b7f8708523e4d31cf03e5a2e34794d2050429dc463997b2f49a5b1f52c4ee23048355eb59086c153d1983a128eaade27ee332c40c8f41e0cd8a9
7
- data.tar.gz: dc89cb3970f516154ef2fd6e72173e2cca4c13ef313ef7840d24b447887ce2d689400867f9203b342dfe4fc1bfbad8ad089c392e9b497fab72e34fc7f8069e55
6
+ metadata.gz: 4af203c910c8aaf8c3b9322c72e26010a45cbb3b4a60b594584537f2f934038a12dde800cb58ba600392d676aa6b46970c3747094daf91774d76e80917fe27f6
7
+ data.tar.gz: 07f636197ce307d8390b694317ddcfec9e8dadf56277650b124b93f1646210d17850ea8a5b070f91fd6418911f69d2ca266ff943f03874bba5a8216fae202306
@@ -67,7 +67,7 @@
67
67
  <orderEntry type="library" scope="PROVIDED" name="sinatra (v2.0.4, RVM: ruby-2.6.0) [gem]" level="application" />
68
68
  <orderEntry type="library" scope="PROVIDED" name="sinatra-basic-auth (v0.1.0, RVM: ruby-2.6.0) [gem]" level="application" />
69
69
  <orderEntry type="library" scope="PROVIDED" name="sinatra-docdsl (v0.8.6, RVM: ruby-2.6.0) [gem]" level="application" />
70
- <orderEntry type="library" scope="PROVIDED" name="soaspec (v0.2.26, RVM: ruby-2.6.0) [gem]" level="application" />
70
+ <orderEntry type="library" scope="PROVIDED" name="soaspec (v0.2.28, RVM: ruby-2.6.0) [gem]" level="application" />
71
71
  <orderEntry type="library" scope="PROVIDED" name="socksify (v1.7.1, RVM: ruby-2.6.0) [gem]" level="application" />
72
72
  <orderEntry type="library" scope="PROVIDED" name="thor (v0.20.3, RVM: ruby-2.6.0) [gem]" level="application" />
73
73
  <orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.6, RVM: ruby-2.6.0) [gem]" level="application" />
data/.leap_salesforce.yml CHANGED
@@ -9,3 +9,4 @@ soql_objects:
9
9
  - Group
10
10
  - Broker: Broker__c
11
11
  - Account
12
+ - Attachment
data/ChangeLog CHANGED
@@ -1,3 +1,14 @@
1
+ Version 0.1.11
2
+ * Enhancements
3
+ * Set retry limit to 0 for OAuth as retrying too many times causes user to be locked
4
+ * Have OAuth verify task as preliminary check before running tests
5
+
6
+ Version 0.1.10
7
+ * Enhancements
8
+ * Remove underscores from start of method name if more than 1 char long
9
+ * Bug Fix
10
+ * Fixed where only special character resulted in value resulted in exception thrown
11
+
1
12
  Version 0.1.9
2
13
  * Enhancements
3
14
  * Updated logs handling so that the user used for API is not unnecessarily repeated
data/Rakefile CHANGED
@@ -10,7 +10,12 @@ CLEAN.include 'tmp/*'
10
10
 
11
11
  RSpec::Core::RakeTask.new(:spec)
12
12
 
13
- task default: %i[clean spec]
13
+ desc 'Check Salesforce OAuth2 authentication is working'
14
+ task :check_oauth do
15
+ LeapSalesforce.oauth_working?
16
+ end
17
+
18
+ task default: %i[clean check_oauth spec]
14
19
 
15
20
  require 'leap_salesforce'
16
21
 
@@ -39,6 +39,6 @@ It reads the Metadata from Salesforce and creates the foundation for API tests.'
39
39
  spec.add_dependency 'require_all'
40
40
  spec.add_dependency 'rubocop'
41
41
  spec.add_dependency 'rubykeyword'
42
- spec.add_dependency 'soaspec', '>= 0.2.26'
42
+ spec.add_dependency 'soaspec', '>= 0.2.28'
43
43
  spec.add_dependency 'thor'
44
44
  end
@@ -15,9 +15,20 @@ class String
15
15
  .remove_macrons
16
16
  .gsub(/[\s]+/, '_')
17
17
  .gsub(/[\W]/, '') # Remove any other special characters
18
+ .handle_initial_characters # Previous step could have removed all characters
18
19
  .humanize_numbered_string
19
20
  end
20
21
 
22
+ # @return [String] If all characters were stripped out, put a placeholder 'X'. If starts with underscore remove it
23
+ def handle_initial_characters
24
+ if size.zero?
25
+ +'X'
26
+ else
27
+ self[0] = '' if self[0] == '_'
28
+ self
29
+ end
30
+ end
31
+
21
32
  # @return [String] Convert String to form a class could use
22
33
  def to_class_name
23
34
  camelize.to_ruby_friendly.tr('_', '').camelize
@@ -43,12 +43,7 @@ module LeapSalesforce
43
43
  ' vary according to environment (e.g., test.user@<%= LeapSalesforce.environment %>.my.company.com)')
44
44
  LeapSalesforce.password = options[:password] || STDIN.getpass('Password (Recommendation is that 1 password' \
45
45
  ' be shared across all test users to be easier to manage):')
46
- Soaspec::OAuth2.debug_oauth = true
47
- Soaspec::OAuth2.new(LeapSalesforce.oauth_settings).access_token
48
- rescue StandardError
49
- raise LeapSalesforce::SetupError, "Cannot perform OAuth. See 'logs' folder for details of what was sent"
50
- else
51
- puts "\u2713 OAuth successful".colorize :green
46
+ LeapSalesforce.oauth_working?
52
47
  end
53
48
 
54
49
  # Ask user to enter parameters specific to their Salesforce environment
@@ -3,6 +3,11 @@ require 'leap_salesforce/rake'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task default: :spec
6
+ desc 'Check Salesforce OAuth2 authentication is working'
7
+ task :check_oauth do
8
+ LeapSalesforce.oauth_working?
9
+ end
10
+
11
+ task default: %i[check_oauth spec]
7
12
 
8
13
  require 'leap_salesforce'
@@ -20,6 +20,18 @@ module LeapSalesforce
20
20
  ENV['LEAP_ENV'] || @environment
21
21
  end
22
22
 
23
+ # @return [TrueClass] If OAuth authentication is working, return true. Otherwise raise exception
24
+ def oauth_working?
25
+ Soaspec::OAuth2.debug_oauth = true
26
+ Soaspec::OAuth2.new(LeapSalesforce.oauth_settings).access_token
27
+ rescue StandardError
28
+ raise LeapSalesforce::SetupError, "Cannot perform OAuth. See 'logs' folder for details of what was sent"
29
+ else
30
+ puts "\u2713 OAuth successful".colorize :green
31
+ Soaspec::OAuth2.debug_oauth = false
32
+ true
33
+ end
34
+
23
35
  # @return [Hash] OAuth2 parameters used in connecting to salesforce
24
36
  def oauth_settings
25
37
  settings = {
@@ -116,6 +116,18 @@ class SoqlData < Exchange
116
116
  values_from_path('$..Id')
117
117
  end
118
118
 
119
+ # Add the passed in file as an attachment to the object
120
+ def attach(filename)
121
+ unless defined? Attachment
122
+ raise LeapSalesforce::SetupError, 'Attachment not defined. ' \
123
+ "Add to '.leap_salesforce.yml' to use this"
124
+ end
125
+ raise LeapSalesforce::Error, "Filename #{filename} does not exist" unless File.exist? filename
126
+
127
+ FactoryBot.create(:attachment, ParentId: id, Name: File.split(filename).last,
128
+ body: Base64.encode64(File.read(filename)))
129
+ end
130
+
119
131
  # Set a parameter request in the request body.
120
132
  # Can be used to build a request over several steps (e.g Cucumber)
121
133
  # Will be used with FactoryBot
@@ -2,5 +2,5 @@
2
2
 
3
3
  module LeapSalesforce
4
4
  # @return [String] Version of leap salesforce
5
- VERSION = '0.1.9'
5
+ VERSION = '0.1.11'
6
6
  end
@@ -6,6 +6,7 @@ require 'soaspec'
6
6
  Soaspec::OAuth2.refresh_token = :once # Save access token and reuse it
7
7
  Soaspec.log_warnings = false # Log any API warnings
8
8
  Soaspec::OAuth2.request_message = false
9
+ Soaspec::OAuth2.retry_limit = 0 # Retrying for OAuth token results in error
9
10
  require 'active_support/core_ext/integer/time' # Creating time objects
10
11
  require 'leap_salesforce/parameters'
11
12
  require 'leap_salesforce/ext/string'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leap_salesforce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - IQA
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-07-25 00:00:00.000000000 Z
12
+ date: 2019-07-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -199,14 +199,14 @@ dependencies:
199
199
  requirements:
200
200
  - - ">="
201
201
  - !ruby/object:Gem::Version
202
- version: 0.2.26
202
+ version: 0.2.28
203
203
  type: :runtime
204
204
  prerelease: false
205
205
  version_requirements: !ruby/object:Gem::Requirement
206
206
  requirements:
207
207
  - - ">="
208
208
  - !ruby/object:Gem::Version
209
- version: 0.2.26
209
+ version: 0.2.28
210
210
  - !ruby/object:Gem::Dependency
211
211
  name: thor
212
212
  requirement: !ruby/object:Gem::Requirement