leap_salesforce 0.2.19 → 0.2.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +39 -36
- data/ChangeLog +4 -0
- data/README.md +0 -3
- data/lib/leap_salesforce/loader.rb +16 -8
- data/lib/leap_salesforce/soql_data/soql_global_object_data.rb +12 -3
- data/lib/leap_salesforce/users/user.rb +2 -0
- data/lib/leap_salesforce/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c70dd0657bbf1cffadbb3c53fd9e85e8076de8a6470aef5dee1a394951a7412
|
4
|
+
data.tar.gz: a3377b6b50bd1c867bcb682899406ac841ab541e6ff639b3a5af0b13a98acf40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8dc0a944ece51f830a5d0e233454e4469236f1c76615632ab84d51c8a306bfcb4728a5e717f5b6f8569c8162edadcd92d3abfb3f9a65c78b2c8d0b863203c53
|
7
|
+
data.tar.gz: 2c62bf82d52a138b673bddad8a99745d508939b1972df37769006c1a855b962361e1aa03569fad0c2253a1362226f2a159e48dd51f13156e2754affa10237f3a
|
data/.gitlab-ci.yml
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
include:
|
2
2
|
- template: Code-Quality.gitlab-ci.yml
|
3
|
+
- template: Dependency-Scanning.gitlab-ci.yml
|
3
4
|
|
4
5
|
image: ruby:2.6
|
5
6
|
|
@@ -8,12 +9,48 @@ stages:
|
|
8
9
|
- deploy
|
9
10
|
|
10
11
|
variables:
|
12
|
+
LICENSE_MANAGEMENT_SETUP_CMD: bundle install
|
11
13
|
password: $password
|
12
14
|
client_id: $client_id
|
13
15
|
client_secret: $client_secret
|
14
16
|
SERVER_KEY_PASSWORD: $SERVER_KEY_PASSWORD
|
15
17
|
LANG: 'UTF-8'
|
16
18
|
|
19
|
+
test:
|
20
|
+
stage: test
|
21
|
+
script:
|
22
|
+
# Decrypt server key
|
23
|
+
- openssl aes-256-cbc -d -md md5 -in assets/server.key.enc -out assets/server.key -k $SERVER_KEY_PASSWORD
|
24
|
+
- ls -la assets
|
25
|
+
- install_jq
|
26
|
+
- install_salesforce_cli
|
27
|
+
# Integrated test
|
28
|
+
- ruby -v
|
29
|
+
- which ruby
|
30
|
+
- gem install bundler rake
|
31
|
+
- bundle install
|
32
|
+
- sfdx force:auth:jwt:grant --clientid "$SF_CONSUMER_KEY" --jwtkeyfile assets/server.key --username "$SF_USERNAME" --setdefaultdevhubusername --setalias HubOrg
|
33
|
+
- bundle exec rake check_oauth # Check OAuth
|
34
|
+
- bundle exec rake leaps:create_soql_objects
|
35
|
+
- bundle exec rake leaps:create_enums
|
36
|
+
- bundle exec rake
|
37
|
+
artifacts:
|
38
|
+
paths:
|
39
|
+
- coverage/
|
40
|
+
|
41
|
+
pages:
|
42
|
+
stage: deploy
|
43
|
+
dependencies:
|
44
|
+
- test
|
45
|
+
script:
|
46
|
+
- mv coverage/ public
|
47
|
+
artifacts:
|
48
|
+
paths:
|
49
|
+
- public
|
50
|
+
expire_in: 30 days
|
51
|
+
only:
|
52
|
+
- master
|
53
|
+
|
17
54
|
.sfdx_helpers: &sfdx_helpers |
|
18
55
|
|
19
56
|
# Function to install the Salesforce CLI.
|
@@ -586,39 +623,5 @@ variables:
|
|
586
623
|
done
|
587
624
|
}
|
588
625
|
|
589
|
-
|
590
|
-
|
591
|
-
script:
|
592
|
-
- *sfdx_helpers
|
593
|
-
# Decrypt server key
|
594
|
-
- openssl aes-256-cbc -d -md md5 -in assets/server.key.enc -out assets/server.key -k $SERVER_KEY_PASSWORD
|
595
|
-
- ls -la assets
|
596
|
-
# Install jq
|
597
|
-
- apt update && apt -y install jq
|
598
|
-
- install_salesforce_cli
|
599
|
-
# Integrated test
|
600
|
-
- ruby -v
|
601
|
-
- which ruby
|
602
|
-
- gem install bundler rake
|
603
|
-
- bundle install
|
604
|
-
- sfdx force:auth:jwt:grant --clientid "$SF_CONSUMER_KEY" --jwtkeyfile assets/server.key --username "$SF_USERNAME" --setdefaultdevhubusername --setalias HubOrg
|
605
|
-
- bundle exec rake check_oauth
|
606
|
-
- bundle exec rake leaps:create_soql_objects
|
607
|
-
- bundle exec rake leaps:create_enums
|
608
|
-
- bundle exec rake
|
609
|
-
artifacts:
|
610
|
-
paths:
|
611
|
-
- coverage/
|
612
|
-
|
613
|
-
pages:
|
614
|
-
stage: deploy
|
615
|
-
dependencies:
|
616
|
-
- test
|
617
|
-
script:
|
618
|
-
- mv coverage/ public
|
619
|
-
artifacts:
|
620
|
-
paths:
|
621
|
-
- public
|
622
|
-
expire_in: 30 days
|
623
|
-
only:
|
624
|
-
- master
|
626
|
+
before_script:
|
627
|
+
- *sfdx_helpers
|
data/ChangeLog
CHANGED
data/README.md
CHANGED
@@ -5,9 +5,6 @@ from Salesforce and creates the foundation for API tests.
|
|
5
5
|
|
6
6
|
In the future it will also planned to be used to create page objects based on metadata to support UI testing.
|
7
7
|
|
8
|
-
[![Build Status](https://gitlab.com/leap-dojo/leap_salesforce/badges/master/build.svg)](https://gitlab.com/leap-dojo/leap_salesforce/pipelines)
|
9
|
-
[![Coverage](https://gitlab.com/leap-dojo/leap_salesforce/badges/master/coverage.svg)](https://leap-dojo.gitlab.io/leap_salesforce)
|
10
|
-
|
11
8
|
## Is this for you?
|
12
9
|
|
13
10
|
This `gem` is an open source library aimed at making integrated test automation
|
@@ -6,19 +6,27 @@ module LeapSalesforce
|
|
6
6
|
# @return [String] Location of leap_salesforce YAML file
|
7
7
|
LEAP_CONFIG_FILE = '.leap_salesforce.yml'
|
8
8
|
class << self
|
9
|
+
# Set LeapSalesforce property if it exists
|
10
|
+
def set_leaps_property(key, value)
|
11
|
+
if LeapSalesforce.respond_to? "#{key}="
|
12
|
+
if %w[SF_CONSUMER_KEY client_id client_secret password].include? key
|
13
|
+
LeapSalesforce.logger.warn "Secret key '#{key}' should be in non version" \
|
14
|
+
" controlled #{LeapSalesforce::CREDENTIAL_FILE} not in #{LEAP_CONFIG_FILE}"
|
15
|
+
end
|
16
|
+
LeapSalesforce.send("#{key}=", value)
|
17
|
+
else
|
18
|
+
LeapSalesforce.logger.warn "No property for '#{key}' from '#{LEAP_CONFIG_FILE}'"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# Load configuration file and set properties based on it
|
9
23
|
def load_config_file
|
10
24
|
if File.exist? LEAP_CONFIG_FILE
|
11
25
|
leap_config = YAML.load_file LEAP_CONFIG_FILE
|
12
26
|
LeapSalesforce.soql_objects = leap_config.delete('soql_objects')
|
13
|
-
leap_config.each
|
14
|
-
if %w[SF_CONSUMER_KEY client_id client_secret password].include? key
|
15
|
-
LeapSalesforce.logger.warn "Secret key '#{key}' should be in non version" \
|
16
|
-
" controlled #{LeapSalesforce::CREDENTIAL_FILE} not in #{LEAP_CONFIG_FILE}"
|
17
|
-
end
|
18
|
-
LeapSalesforce.send("#{key}=", value)
|
19
|
-
end
|
27
|
+
leap_config.each { |key, value| set_leaps_property(key, value) }
|
20
28
|
else
|
21
|
-
LeapSalesforce.logger.warn "No config file found at #{LEAP_CONFIG_FILE} for Leap Salesforce"
|
29
|
+
LeapSalesforce.logger.warn "No config file found at '#{LEAP_CONFIG_FILE}' for Leap Salesforce"
|
22
30
|
end
|
23
31
|
end
|
24
32
|
end
|
@@ -18,6 +18,8 @@ module SoqlGlobalObjectData
|
|
18
18
|
|
19
19
|
# Find the data for a single SoqlObject using the calling class's table.
|
20
20
|
# Will get the latest created date.
|
21
|
+
# @example Get any contact
|
22
|
+
# Contact.find
|
21
23
|
# @example Get a contact where LastName is 'Bob' using backend name
|
22
24
|
# Contact.find(LastName: 'Bob')
|
23
25
|
# @example Get a contact that includes 'Test' in their first name (using ruby accessor name)
|
@@ -27,7 +29,7 @@ module SoqlGlobalObjectData
|
|
27
29
|
# @param [Hash] lookup Key value pair unique to Salesforce to query for
|
28
30
|
# @option lookup [Boolean] :teardown Whether to remove id after scenario finished
|
29
31
|
# @return [< SoqlData] Instance of itself storing reference to found object
|
30
|
-
def find(lookup)
|
32
|
+
def find(lookup = {})
|
31
33
|
id_lookup = soql.lookup_id lookup
|
32
34
|
lookup.key?(:Id) ? id_lookup : soql.data_from_url(id_lookup['$..url'], lookup)
|
33
35
|
end
|
@@ -53,7 +55,7 @@ module SoqlGlobalObjectData
|
|
53
55
|
end
|
54
56
|
|
55
57
|
# @return [Boolean] Whether any result for lookup
|
56
|
-
def any?(lookup)
|
58
|
+
def any?(lookup = {})
|
57
59
|
soql.lookup_id(lookup)[:totalSize] != 0
|
58
60
|
end
|
59
61
|
|
@@ -64,7 +66,7 @@ module SoqlGlobalObjectData
|
|
64
66
|
# @param [Hash] lookup Key value pair unique to Salesforce to query for
|
65
67
|
# @yield [id] Perform block for each id returned. The 'id' parameter in a block represents an id matching the query
|
66
68
|
# @return [Array] List of ids matching criteria. Only used if no block given
|
67
|
-
def ids_where(lookup)
|
69
|
+
def ids_where(lookup = {})
|
68
70
|
lookup[:limit] ||= nil # Don't limit results returned
|
69
71
|
SoqlHandler.new("Each Id where #{self}").use
|
70
72
|
results = soql.query soql.soql_id(lookup), wait: false
|
@@ -87,6 +89,13 @@ module SoqlGlobalObjectData
|
|
87
89
|
|
88
90
|
alias each_with where
|
89
91
|
|
92
|
+
# Return list of objects (matching criteria if passed)
|
93
|
+
# @param [Hash] lookup Key value pair unique to Salesforce to query for. Leave empty for all
|
94
|
+
# @return [Array] List of all soql objects
|
95
|
+
def list(lookup = {})
|
96
|
+
where(lookup)
|
97
|
+
end
|
98
|
+
|
90
99
|
# Remove all ids from table that match lookup criteria
|
91
100
|
# @param [Hash] lookup Key value pair unique to Salesforce to query for
|
92
101
|
def delete_ids_with(lookup)
|
@@ -41,6 +41,8 @@ module LeapSalesforce
|
|
41
41
|
# @return [String] Username of User interpreted by ERB (in email address format).
|
42
42
|
# Use ERB to define users that can vary according to environment
|
43
43
|
def username
|
44
|
+
raise LeapSalesforce::SetupError, "User #{inspect} has no username" if @username.nil? || @username.empty?
|
45
|
+
|
44
46
|
ERB.new(@username).result(binding)
|
45
47
|
end
|
46
48
|
|
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.2.
|
4
|
+
version: 0.2.20
|
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: 2020-01-
|
12
|
+
date: 2020-01-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|