leap_salesforce 1.4.0 → 1.4.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 13951c22ceafff2467ca471cb6fda3c9b7ab34dd707c7e23371be362aee3199d
4
- data.tar.gz: 2285ff9c9b90f44da101c8b186646ae8e7d4a7ff83b16bcd04807f72f5432d3c
3
+ metadata.gz: 727cda791511d2d4114ed478b5686cdcdf194d57d38b43258180f1e9edf2dda8
4
+ data.tar.gz: 3ee6582c6ec6365ea2e64fb1fe8368047171414086c2278689e0bd3c7de7f274
5
5
  SHA512:
6
- metadata.gz: 6377865707517db0bc51c59bf8e2f7d17a7ceba3191c5cd9759dfbde7e904cd2471e4574c8e981a3a781dfa1f9bc487a0f414d3b8c94c6cd618d6b2145d0b752
7
- data.tar.gz: a033b46017e9dbd28b743a38b97fcd5c16663a5f3addf07dd3039354101a6a610c501c4f004e6ba1357d465d0a5212fb48dac1de8e20787a1565ac612148c21a
6
+ metadata.gz: 7382790fba0ca2416cd50d4a547c46572e16ac575b9e989b27dbbf921e8074507b8627db3daf0acbdb60533c02a65aaeeac35ed4475ad64c166ac1ee263f1b86
7
+ data.tar.gz: 431a449bec6a0989ec7188b2dbd2a24fbe5d806b941c5b62dad86c1db027f559d8397545d17f3765d190ffe56ccab91a7f1b1cbd31d2769ac6fddbb5a704e476
data/ChangeLog CHANGED
@@ -1,3 +1,10 @@
1
+ Version 1.4.2
2
+ * Fixed leap_salesforce version method
3
+
4
+ Version 1.4.1
5
+ * Fixed method names that need to match types
6
+ * Fixed file name created. Needs to be with '.java' in lower case
7
+
1
8
  Version 1.4
2
9
  * Ability to generate Java classes from metadata using the exe 'leap_salesforce create_soql_objects --language=java'
3
10
 
data/README.md CHANGED
@@ -3,7 +3,8 @@
3
3
  Welcome to LeapSalesforce gem. This gem helps ones to perform integration tests on Salesforce. It reads the Metadata
4
4
  from Salesforce and creates the foundation for API tests.
5
5
 
6
- Support for UI testing is being worked on in another gem [leap_salesforce_ui](https://gitlab.com/leap-dojo/leap_salesforce_ui)
6
+ Support for UI testing is being worked on in another gem [leap_salesforce_ui](https://gitlab.com/leap-dojo/leap_salesforce_ui).
7
+ An example using this and the learnings it involved are in a Java Project [Leap Salesforce Java](https://gitlab.com/leap-dojo/leap_salesforce_java)
7
8
 
8
9
  ## Is this for you?
9
10
 
data/exe/leap_salesforce CHANGED
@@ -4,11 +4,10 @@
4
4
  $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
5
5
 
6
6
  require 'thor'
7
- require 'dotenv'
8
- Dotenv.load
7
+ require 'leap_salesforce/error'
9
8
  require 'leap_salesforce/parameters'
10
9
  require 'leap_salesforce/generator/generator'
11
- require 'leap_salesforce/error'
10
+ require 'leap_salesforce/version'
12
11
  require 'colorize'
13
12
 
14
13
  module LeapSalesforce
@@ -62,15 +61,24 @@ Please ignore "config/credentials/" and "logs/"'.colorize :red
62
61
  end
63
62
 
64
63
  desc 'create_soql_objects', 'Creates SOQL objects from metadata based on .leap_salesforce.yml'
65
- option :language, default: 'ruby'
64
+ option :language
66
65
  def create_soql_objects
67
- LeapSalesforce.language = options[:language]
68
- require 'leap_salesforce/generator/soql_objects'
66
+ LeapSalesforce.language = options[:language] if options[:language]
67
+ require 'leap_salesforce/generator/soql_objects'
69
68
  LeapSalesforce.oauth_working?
70
69
  LeapSalesforce::Users.execute_as_if_present key: :admin do
71
70
  LeapSalesforce::Generator::SoqlObjects.new.create_all
72
71
  end
73
72
  end
73
+
74
+ desc 'version', 'Version this library'
75
+ def version
76
+ puts LeapSalesforce::VERSION
77
+ end
78
+
79
+ def self.exit_on_failure?
80
+ true
81
+ end
74
82
  end
75
83
  end
76
84
 
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'error'
4
+ require 'dotenv'
5
+ Dotenv.load
4
6
 
5
7
  module LeapSalesforce
6
8
  # Code related to authorising in LeapSalesforce
@@ -12,7 +12,7 @@ module LeapSalesforce
12
12
  class SoqlObjects
13
13
  include Generator
14
14
 
15
- SOQL_DATA_FOLDER = LeapSalesforce.language == "java" ? 'SoqlObjects' : 'soql_data'
15
+ SOQL_DATA_FOLDER = LeapSalesforce.language == 'java' ? 'SoqlObjects' : 'soql_data'
16
16
  SOQL_OBJECT_FOLDER = File.join(LeapSalesforce.lib_folder, SOQL_DATA_FOLDER).freeze
17
17
  FACTORY_FOLDER = File.join(LeapSalesforce.lib_folder, 'factories').freeze
18
18
 
@@ -32,7 +32,8 @@ module LeapSalesforce
32
32
  raise LeapSalesforce::SetupError, "Error producing Soql data for '#{@soql_class}', soql table " \
33
33
  " '#{@soql_object.backend_name}'. Error message: '#{desc.error_message}'"
34
34
  end
35
- return unless LeapSalesforce.language == "ruby"
35
+ return unless LeapSalesforce.language == 'ruby'
36
+
36
37
  content = read_template 'soql_object.rb.erb', binding
37
38
  file = File.join(SOQL_OBJECT_FOLDER, "#{@soql_object.reference}.rb")
38
39
  generate_file file, content, overwrite: false
@@ -40,21 +41,22 @@ module LeapSalesforce
40
41
 
41
42
  # Generate module with fields for Soql Object
42
43
  def generate_field_module
43
- if LeapSalesforce.language == "ruby"
44
+ if LeapSalesforce.language == 'ruby'
44
45
  field_content = read_template 'soql_object_field_names.rb.erb', binding
45
46
  field_file = File.join(SOQL_OBJECT_FOLDER, "#{@field_name_file}.rb")
46
- elsif LeapSalesforce.language == "java"
47
- field_content = read_template 'soql_object_field_names.Java.erb', binding
48
- field_file = File.join(SOQL_OBJECT_FOLDER, "#{@soql_object.class_name}.Java")
47
+ elsif LeapSalesforce.language == 'java'
48
+ field_content = read_template 'soql_object_field_names.java.erb', binding
49
+ field_file = File.join(SOQL_OBJECT_FOLDER, "#{@soql_object.class_name}.java")
49
50
  else
50
51
  raise LeapSalesforce::SetupError, "Unsupported language '#{LeapSalesforce.language}'"
51
- end
52
- generate_file field_file, field_content
52
+ end
53
+ generate_file field_file, field_content
53
54
  end
54
55
 
55
56
  # Generate factory for mass generating objects using FactoryBot
56
57
  def generate_factory
57
- return unless LeapSalesforce.language == "ruby"
58
+ return unless LeapSalesforce.language == 'ruby'
59
+
58
60
  @default_fields, @other_fields = filter_fields
59
61
  content = read_template 'factory.rb.erb', binding
60
62
  file = File.join(FACTORY_FOLDER, "#{@soql_object.reference}.rb")
@@ -72,10 +74,10 @@ module LeapSalesforce
72
74
  generate_field_module
73
75
  generate_factory
74
76
  end
75
- if LeapSalesforce.language == 'ruby'
76
- `rubocop -A #{SOQL_OBJECT_FOLDER} --enable-pending-cops`
77
- `rubocop -A #{FACTORY_FOLDER} --enable-pending-cops`
78
- end
77
+ return unless LeapSalesforce.language == 'ruby'
78
+
79
+ `rubocop -A #{SOQL_OBJECT_FOLDER} --enable-pending-cops`
80
+ `rubocop -A #{FACTORY_FOLDER} --enable-pending-cops`
79
81
  end
80
82
 
81
83
  private
@@ -15,8 +15,11 @@ public class <%= @soql_object.class_name %> {
15
15
  <% end %>
16
16
 
17
17
  <% @soql_class.fields.each do |field| %>
18
- public String get<%= field['label'].unused_camel_name %>() { return <%= field['name'].camelize(:lower) %>; }
19
- public void set<%= field['label'].unused_camel_name %>(String <%= field['name'].camelize(:lower) %>) { this.<%= field['name'].camelize(:lower) %> = <%= field['name'].camelize(:lower) %>; }
18
+ public String get<%= field['name'].camelize(:upper) %>() { return <%= field['name'].camelize(:lower) %>; }
19
+ /**
20
+ * Label: '<%= field['label'] %>', Type: <%= field['type'] %><%= ", Relationship:" + field['relationshipName'] if field['relationshipName'] %>
21
+ */
22
+ public void set<%= field['name'].camelize(:upper) %>(String <%= field['name'].camelize(:lower) %>) { this.<%= field['name'].camelize(:lower) %> = <%= field['name'].camelize(:lower) %>; }
20
23
  <% end %>
21
24
  }
22
25
 
@@ -2,6 +2,5 @@
2
2
 
3
3
  # Create a Leaps alias to LeapSalesforce as it's faster to type.
4
4
  # This will not be automatically required in case as 'Leaps' may be defined elsewhere
5
-
6
5
  require 'leap_salesforce'
7
6
  Leaps = LeapSalesforce
@@ -16,8 +16,8 @@ module LeapSalesforce
16
16
  @client_id = ENV['client_id']
17
17
  @client_secret = ENV['client_secret']
18
18
  @password = ENV['password']
19
- @language = "ruby"
20
- @soql_field_start_text = ""
19
+ @language = 'ruby'
20
+ @soql_field_start_text = ''
21
21
  @environment = nil
22
22
  @logger = Logger.new $stdout
23
23
  @sfdx = false
@@ -135,7 +135,7 @@ module LeapSalesforce
135
135
  # @return [Symbol] Name of the language used
136
136
  attr_accessor :language
137
137
 
138
- # @return [String] Text to be added as start of auto generated Soql field names
138
+ # @return [String] Text to be added as start of auto generated Soql field names
139
139
  # classes in the Salesforce object
140
140
  attr_accessor :soql_field_start_text
141
141
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'auth'
2
4
  require 'savon'
3
5
  require 'json'
@@ -21,12 +23,11 @@ module LeapSalesforce
21
23
  end
22
24
 
23
25
  class << self
24
-
25
26
  # Login via SOAP API
26
27
  def soap_login(username, password, security_token)
27
28
  client = Savon.client do
28
29
  endpoint "#{SoqlHandler.instance_url}/services/Soap/u/51.0"
29
- namespace "urn:partner.soap.sforce.com"
30
+ namespace 'urn:partner.soap.sforce.com'
30
31
  log true # See request and response. (Put this in traffic file)
31
32
  log_level :debug
32
33
  logger Soaspec::SpecLogger.create
@@ -120,7 +120,7 @@ module LeapSalesforce
120
120
  value = value.nil? ? 'null' : value.to_s
121
121
  operator, value = case value[0]
122
122
  when '>', '<', '!', 'I' then extract_comparator(value)
123
- when '~' then ['LIKE', value[1..-1]]
123
+ when '~' then ['LIKE', value[1..]]
124
124
  else ['=', value]
125
125
  end
126
126
  case soql_table.type_for(field_name)
@@ -142,18 +142,18 @@ module LeapSalesforce
142
142
  # @return [Array] Extract of operator, value, taking >, >, >= from string and rest of string
143
143
  def extract_comparator(value)
144
144
  if value[1] == '='
145
- [value[0..1], value[2..-1]]
145
+ [value[0..1], value[2..]]
146
146
  elsif value[0..2] == '!IN'
147
- ['NOT IN', value[3..-1].to_soql_array]
147
+ ['NOT IN', value[3..].to_soql_array]
148
148
  elsif value[0..1] == 'IN'
149
- ['IN', value[2..-1].to_soql_array]
149
+ ['IN', value[2..].to_soql_array]
150
150
  elsif value[0] == 'I' # 'N' not 2nd character
151
151
  ['=', value]
152
152
  elsif value[0] == '!'
153
- remaining = value[1..-1] == 'nil' ? 'null' : value[1..-1]
153
+ remaining = value[1..] == 'nil' ? 'null' : value[1..]
154
154
  ['!=', remaining]
155
155
  else
156
- [value[0], value[1..-1]]
156
+ [value[0], value[1..]]
157
157
  end
158
158
  end
159
159
  end
@@ -49,7 +49,7 @@ class SoqlData < Exchange
49
49
  if @override_parameters && @override_parameters[:suburl]
50
50
  suburl_passed = @override_parameters[:suburl]
51
51
  @override_parameters[:suburl] = if suburl_passed.include?('sobjects')
52
- suburl_passed[suburl_passed.index('sobjects')..-1]
52
+ suburl_passed[suburl_passed.index('sobjects')..]
53
53
  else
54
54
  suburl_passed
55
55
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module LeapSalesforce
4
4
  # @return [String] Version of leap salesforce
5
- VERSION = '1.4.0'
5
+ VERSION = '1.4.2'
6
6
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'leap_salesforce/version'
4
-
5
4
  require 'facets/string/snakecase'
6
5
  require 'soaspec'
7
6
  Soaspec::OAuth2.refresh_token = :once # Save access token and reuse it
@@ -21,8 +20,6 @@ require 'faker' # For fake data
21
20
  require 'leap_salesforce/error'
22
21
  require 'leap_salesforce/loader'
23
22
  require 'leap_salesforce/session'
24
- require 'dotenv'
25
- Dotenv.load
26
23
 
27
24
  # If variable is present within LeapSalesforce set it
28
25
  def load_variables_from(file)
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: 1.4.0
4
+ version: 1.4.2
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: 2024-09-27 00:00:00.000000000 Z
12
+ date: 2024-09-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler