leap_salesforce 0.2.9 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.idea/leap-salesforce.iml +10 -10
- data/.leap_salesforce.yml +1 -1
- data/ChangeLog +5 -1
- data/config/general.rb +1 -0
- data/lib/leap_salesforce/users/user.rb +19 -2
- data/lib/leap_salesforce/users/users.rb +3 -1
- 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: 2b4228bbc91ae1dffc9760add16a38dbf863b4109e3091ffc7b022303fc7e665
|
4
|
+
data.tar.gz: 21c8daf87f6078118de270eecbf9ca680571ec0040d115f16f64840b27a86188
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b1c45e827fb9866c5901aa8b085c6452e885cc54b076cbf7dc3176abf78d25de6195335efe97a7872ecb634e2eb72badf76c121fbe659ff3f40140ff4d9de4e
|
7
|
+
data.tar.gz: ca9ca1edbb4919fba1b6895262de9b4e3389048756319b62320562e528f9fe48028e20f8f6157031d2015e4c50248865ffe731d3c73c2ddf751068f19c22232a
|
data/.idea/leap-salesforce.iml
CHANGED
@@ -23,24 +23,24 @@
|
|
23
23
|
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.3, RVM: ruby-2.6.5) [gem]" level="application" />
|
24
24
|
<orderEntry type="library" scope="PROVIDED" name="domain_name (v0.5.20190701, RVM: ruby-2.6.5) [gem]" level="application" />
|
25
25
|
<orderEntry type="library" scope="PROVIDED" name="factory_bot (v5.1.1, RVM: ruby-2.6.5) [gem]" level="application" />
|
26
|
-
<orderEntry type="library" scope="PROVIDED" name="faker (v2.
|
26
|
+
<orderEntry type="library" scope="PROVIDED" name="faker (v2.6.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
27
27
|
<orderEntry type="library" scope="PROVIDED" name="gyoku (v1.3.1, RVM: ruby-2.6.5) [gem]" level="application" />
|
28
28
|
<orderEntry type="library" scope="PROVIDED" name="hashie (v3.6.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
29
29
|
<orderEntry type="library" scope="PROVIDED" name="http-accept (v1.7.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
30
30
|
<orderEntry type="library" scope="PROVIDED" name="http-cookie (v1.0.3, RVM: ruby-2.6.5) [gem]" level="application" />
|
31
31
|
<orderEntry type="library" scope="PROVIDED" name="httpi (v2.4.4, RVM: ruby-2.6.5) [gem]" level="application" />
|
32
|
-
<orderEntry type="library" scope="PROVIDED" name="humanize (v2.
|
33
|
-
<orderEntry type="library" scope="PROVIDED" name="i18n (v1.
|
32
|
+
<orderEntry type="library" scope="PROVIDED" name="humanize (v2.3.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
33
|
+
<orderEntry type="library" scope="PROVIDED" name="i18n (v1.7.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
34
34
|
<orderEntry type="library" scope="PROVIDED" name="jaro_winkler (v1.5.3, RVM: ruby-2.6.5) [gem]" level="application" />
|
35
|
-
<orderEntry type="library" scope="PROVIDED" name="jsonpath (v1.0.
|
35
|
+
<orderEntry type="library" scope="PROVIDED" name="jsonpath (v1.0.5, RVM: ruby-2.6.5) [gem]" level="application" />
|
36
36
|
<orderEntry type="library" scope="PROVIDED" name="kramdown (v2.1.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
37
37
|
<orderEntry type="library" scope="PROVIDED" name="launchy (v2.4.3, RVM: ruby-2.6.5) [gem]" level="application" />
|
38
38
|
<orderEntry type="library" scope="PROVIDED" name="method_source (v0.9.2, RVM: ruby-2.6.5) [gem]" level="application" />
|
39
39
|
<orderEntry type="library" scope="PROVIDED" name="mime-types (v3.3, RVM: ruby-2.6.5) [gem]" level="application" />
|
40
|
-
<orderEntry type="library" scope="PROVIDED" name="mime-types-data (v3.2019.
|
40
|
+
<orderEntry type="library" scope="PROVIDED" name="mime-types-data (v3.2019.1009, RVM: ruby-2.6.5) [gem]" level="application" />
|
41
41
|
<orderEntry type="library" scope="PROVIDED" name="mini_portile2 (v2.4.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
42
42
|
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.12.2, RVM: ruby-2.6.5) [gem]" level="application" />
|
43
|
-
<orderEntry type="library" scope="PROVIDED" name="multi_json (v1.
|
43
|
+
<orderEntry type="library" scope="PROVIDED" name="multi_json (v1.14.1, RVM: ruby-2.6.5) [gem]" level="application" />
|
44
44
|
<orderEntry type="library" scope="PROVIDED" name="mustermann (v1.0.3, RVM: ruby-2.6.5) [gem]" level="application" />
|
45
45
|
<orderEntry type="library" scope="PROVIDED" name="netrc (v0.11.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
46
46
|
<orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.10.4, RVM: ruby-2.6.5) [gem]" level="application" />
|
@@ -56,20 +56,20 @@
|
|
56
56
|
<orderEntry type="library" scope="PROVIDED" name="random-port (v0.5.1, RVM: ruby-2.6.5) [gem]" level="application" />
|
57
57
|
<orderEntry type="library" scope="PROVIDED" name="require_all (v2.0.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
58
58
|
<orderEntry type="library" scope="PROVIDED" name="rest-client (v2.1.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
59
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec (v3.
|
59
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec (v3.9.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
60
60
|
<orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.8.2, RVM: ruby-2.6.5) [gem]" level="application" />
|
61
61
|
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.8.6, RVM: ruby-2.6.5) [gem]" level="application" />
|
62
62
|
<orderEntry type="library" scope="PROVIDED" name="rspec-its (v1.3.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
63
63
|
<orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.8.2, RVM: ruby-2.6.5) [gem]" level="application" />
|
64
64
|
<orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.8.3, RVM: ruby-2.6.5) [gem]" level="application" />
|
65
|
-
<orderEntry type="library" scope="PROVIDED" name="rubocop (v0.75.
|
65
|
+
<orderEntry type="library" scope="PROVIDED" name="rubocop (v0.75.1, RVM: ruby-2.6.5) [gem]" level="application" />
|
66
66
|
<orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.10.1, RVM: ruby-2.6.5) [gem]" level="application" />
|
67
67
|
<orderEntry type="library" scope="PROVIDED" name="rubykeyword (v0.0.4, RVM: ruby-2.6.5) [gem]" level="application" />
|
68
68
|
<orderEntry type="library" scope="PROVIDED" name="savon (v2.12.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
69
69
|
<orderEntry type="library" scope="PROVIDED" name="sinatra (v2.0.4, RVM: ruby-2.6.5) [gem]" level="application" />
|
70
70
|
<orderEntry type="library" scope="PROVIDED" name="sinatra-basic-auth (v0.1.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
71
71
|
<orderEntry type="library" scope="PROVIDED" name="sinatra-docdsl (v0.8.6, RVM: ruby-2.6.5) [gem]" level="application" />
|
72
|
-
<orderEntry type="library" scope="PROVIDED" name="soaspec (v0.3.
|
72
|
+
<orderEntry type="library" scope="PROVIDED" name="soaspec (v0.3.2, RVM: ruby-2.6.5) [gem]" level="application" />
|
73
73
|
<orderEntry type="library" scope="PROVIDED" name="socksify (v1.7.1, RVM: ruby-2.6.5) [gem]" level="application" />
|
74
74
|
<orderEntry type="library" scope="PROVIDED" name="thor (v0.20.3, RVM: ruby-2.6.5) [gem]" level="application" />
|
75
75
|
<orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.6, RVM: ruby-2.6.5) [gem]" level="application" />
|
@@ -84,7 +84,7 @@
|
|
84
84
|
<orderEntry type="library" scope="PROVIDED" name="xml-simple (v1.1.5, RVM: ruby-2.6.5) [gem]" level="application" />
|
85
85
|
<orderEntry type="library" scope="PROVIDED" name="yard (v0.9.20, RVM: ruby-2.6.5) [gem]" level="application" />
|
86
86
|
<orderEntry type="library" scope="PROVIDED" name="yard-doctest (v0.1.17, RVM: ruby-2.6.5) [gem]" level="application" />
|
87
|
-
<orderEntry type="library" scope="PROVIDED" name="zeitwerk (v2.
|
87
|
+
<orderEntry type="library" scope="PROVIDED" name="zeitwerk (v2.2.0, RVM: ruby-2.6.5) [gem]" level="application" />
|
88
88
|
</component>
|
89
89
|
<component name="RModuleSettingsStorage">
|
90
90
|
<LOAD_PATH number="1" string0="$MODULE_DIR$/spec/support" />
|
data/.leap_salesforce.yml
CHANGED
data/ChangeLog
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
-
Version 0.2.
|
1
|
+
Version 0.2.10
|
2
2
|
* Enhancement
|
3
3
|
* LeapSalesforce::Users
|
4
4
|
* any? method to check whether user is defined
|
5
|
+
|
6
|
+
Version 0.2.9
|
7
|
+
* Enhancement
|
8
|
+
* LeapSalesforce::Users
|
5
9
|
* execute_as_if_present to temporarily switch to another user if they exist
|
6
10
|
|
7
11
|
Version 0.2.8
|
data/config/general.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
# Add users to LeapSalesforce context. First user is the default
|
4
4
|
module LeapSalesforce
|
5
5
|
Users.add User.new :admin, 'samuel.garratt@brave-otter-ttxype.com'
|
6
|
+
Users.add User.new :not_there, 'not.there@brave-otter-ttxype.com'
|
6
7
|
end
|
7
8
|
|
8
9
|
ENV['SF_USERNAME'] = 'samuel.garratt@brave-otter-ttxype.com'
|
@@ -2,13 +2,16 @@
|
|
2
2
|
|
3
3
|
module LeapSalesforce
|
4
4
|
# A test user used to execute tests
|
5
|
+
# TODO: Handle approach of assigning a profile including role hierarchy.
|
6
|
+
# I.e, Sales user and Sales Manager have one role but different position
|
5
7
|
class User
|
6
8
|
# @return [String] Name to identify user by
|
7
9
|
attr_accessor :key
|
8
10
|
# @return [String] Username of User interpreted by ERB (in email address format). Use ERB to define users that can vary
|
9
11
|
# according to environment
|
10
12
|
attr_writer :username
|
11
|
-
# @return [String] Long form description of user. Could be used to reference them
|
13
|
+
# @return [String] Long form description of user. Could be used to reference them where a human
|
14
|
+
# readable format is required such as in a Cucumber test
|
12
15
|
attr_accessor :description
|
13
16
|
|
14
17
|
# @param [String, Symbol] key Key used to identify a test user
|
@@ -19,7 +22,21 @@ module LeapSalesforce
|
|
19
22
|
self.description = description
|
20
23
|
end
|
21
24
|
|
22
|
-
#
|
25
|
+
# Query for user in Salesforce instance
|
26
|
+
# @return [Boolean] Whether Salesforce user exists in environment running against
|
27
|
+
def exists?
|
28
|
+
if defined? ::User
|
29
|
+
Users.execute_as_if_present key: :admin do
|
30
|
+
::User.any?(username: username)
|
31
|
+
end
|
32
|
+
else
|
33
|
+
raise LeapSalesforce::SetupError, "'User' class must be defined " \
|
34
|
+
" to check presence of user in environment #{LeapSalesforce.environment}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# @return [String] Username of User interpreted by ERB (in email address format).
|
39
|
+
# Use ERB to define users that can vary according to environment
|
23
40
|
def username
|
24
41
|
ERB.new(@username).result(binding)
|
25
42
|
end
|
@@ -33,14 +33,16 @@ module LeapSalesforce
|
|
33
33
|
|
34
34
|
# Execute block as user matching filter if that user is present
|
35
35
|
# If user is not present the current user will be used
|
36
|
+
# @return [Object] Result of block
|
36
37
|
def execute_as_if_present(filter)
|
37
38
|
raise ArgumentError, 'Pass block to :execute_as_if_present method' unless block_given?
|
38
39
|
|
39
40
|
current_user = LeapSalesforce.api_user
|
40
41
|
if any? filter
|
41
42
|
LeapSalesforce.api_user = LeapSalesforce::Users.where filter
|
42
|
-
yield
|
43
|
+
result = yield
|
43
44
|
LeapSalesforce.api_user = current_user
|
45
|
+
result
|
44
46
|
else
|
45
47
|
LeapSalesforce.logger.warn "No user found user filter #{filter}, using '#{current_user}'"
|
46
48
|
yield
|
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.10
|
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-10-
|
12
|
+
date: 2019-10-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|