leap_salesforce 0.1.11 → 0.1.12
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 +4 -4
- data/.idea/.rakeTasks +1 -1
- data/.idea/markdown-exported-files.xml +8 -0
- data/ChangeLog +7 -0
- data/PITCHME.md +110 -0
- data/PITCHME.yaml +2 -0
- data/README.md +8 -1
- data/assets/img/logo.png +0 -0
- data/lib/leap_salesforce.rb +1 -1
- data/lib/leap_salesforce/soql_data/soql_data.rb +17 -1
- data/lib/leap_salesforce/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f223007c3c8d006fd9d639357756108c242a18f70a5843648ffe3393ce1928be
|
4
|
+
data.tar.gz: abe22b8c691f391158e38520476ed23e1378e54e2feabb4cac1ff366d422847b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24fa2a866b764c494127fd2413c4a6f9c14d2faee72d0f47b3efec4a96295e9decdff0c2ebc8e701f880663c8777649d05a6fb5411a49255650106b75759c3f0
|
7
|
+
data.tar.gz: 1aad23255a4ee3233096a029962f24ecf7079850c67107834be0d11671c7165a673edb2733d8e586407a3dd68c368bd4ba52f1e23183127d4d3563b707eeb710
|
data/.idea/.rakeTasks
CHANGED
@@ -4,4 +4,4 @@ You are allowed to:
|
|
4
4
|
1. Remove rake task
|
5
5
|
2. Add existing rake tasks
|
6
6
|
To add existing rake tasks automatically delete this file and reload the project.
|
7
|
-
--><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Build leap_salesforce-0.1.
|
7
|
+
--><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Build leap_salesforce-0.1.11.gem into the pkg directory" fullCmd="build" taksId="build" /><RakeTask description="Check Salesforce OAuth2 authentication is working" fullCmd="check_oauth" taksId="check_oauth" /><RakeTask description="Remove any temporary products" fullCmd="clean" taksId="clean" /><RakeTask description="Remove any generated files" fullCmd="clobber" taksId="clobber" /><RakeTask description="Build and install leap_salesforce-0.1.11.gem into system gems" fullCmd="install" taksId="install" /><RakeGroup description="" fullCmd="" taksId="install"><RakeTask description="Build and install leap_salesforce-0.1.11.gem into system gems without network access" fullCmd="install:local" taksId="local" /></RakeGroup><RakeGroup description="" fullCmd="" taksId="leaps"><RakeTask description="Create objects, fields, enums" fullCmd="leaps:create_all" taksId="create_all" /><RakeTask description="Create Enumeration objects for picklists from Salesforce Metadata" fullCmd="leaps:create_enums" taksId="create_enums" /><RakeTask description="Create Soql Data objects" fullCmd="leaps:create_soql_objects" taksId="create_soql_objects" /></RakeGroup><RakeTask description="Create tag v0.1.11 and build and push leap_salesforce-0.1.11.gem to rubygems.org" fullCmd="release[remote]" taksId="release[remote]" /><RakeTask description="Run RSpec code examples" fullCmd="spec" taksId="spec" /><RakeTask description="Create stubs for dynamic methods so they're picked up by the IDE" fullCmd="stub" taksId="stub" /><RakeTask description="" fullCmd="default" taksId="default" /><RakeTask description="" fullCmd="release" taksId="release" /><RakeGroup description="" fullCmd="" taksId="release"><RakeTask description="" fullCmd="release:guard_clean" taksId="guard_clean" /><RakeTask description="" fullCmd="release:rubygem_push" taksId="rubygem_push" /><RakeTask description="" fullCmd="release:source_control_push" taksId="source_control_push" /></RakeGroup></RakeGroup></Settings>
|
data/ChangeLog
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
Version 0.1.12
|
2
|
+
* Enhancements
|
3
|
+
* Add contact factory to source control so it can be used to demonstrate traits and associations
|
4
|
+
* Provide 2 more ways of creating objects.
|
5
|
+
* Through specifying hash on 'new'
|
6
|
+
* Through 'create' which calls FactoryBot for itself
|
7
|
+
|
1
8
|
Version 0.1.11
|
2
9
|
* Enhancements
|
3
10
|
* Set retry limit to 0 for OAuth as retrying too many times causes user to be locked
|
data/PITCHME.md
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
# Leap Salesforce
|
2
|
+
|
3
|
+
Making Salesforce testing easy
|
4
|
+
|
5
|
+
---
|
6
|
+
|
7
|
+
## Contents
|
8
|
+
|
9
|
+
* What does this library do
|
10
|
+
* Bootstrap of test automation suite from Salesforce credentials
|
11
|
+
* Verification of Salesforce on different levels
|
12
|
+
* Creation of objects
|
13
|
+
* Querying for objects
|
14
|
+
* Updating objects
|
15
|
+
* Deleting objects
|
16
|
+
|
17
|
+
---
|
18
|
+
|
19
|
+
## What it does
|
20
|
+
|
21
|
+
Makes it easy to create integrated tests using Salesforce API with Ruby objects that map to objects in Salesforce.
|
22
|
+
Ruby gem is open source and has many convenience methods to performing actions that form automated tests.
|
23
|
+
|
24
|
+
---
|
25
|
+
|
26
|
+
## Bootstrapping test automation suite
|
27
|
+
|
28
|
+
* Install gem
|
29
|
+
* From Salesforce credentials create a full automation suite
|
30
|
+
* See a recording of running through this [here](https://asciinema.org/a/259098)
|
31
|
+
|
32
|
+
---
|
33
|
+
|
34
|
+
## Verification on different levels
|
35
|
+
|
36
|
+
From faster with broadest coverage to slower and harder to maintain
|
37
|
+
|
38
|
+
* Metadata
|
39
|
+
* System
|
40
|
+
* Integration
|
41
|
+
* UI
|
42
|
+
|
43
|
+
---
|
44
|
+
|
45
|
+
## Metadata
|
46
|
+
|
47
|
+
Creating a baseline of Metadata and checking what has changed (For example, the values in a picklist can be
|
48
|
+
recorded and then every time there's a change, the test will be to whether the values are the same. The baseline
|
49
|
+
can be re-recorded easily when a change is meant to occur).
|
50
|
+
|
51
|
+
---
|
52
|
+
|
53
|
+
## System
|
54
|
+
|
55
|
+
Entities can have single actions on them and a small step checked. (For example, not setting all mandatory fields
|
56
|
+
can be checked to see if an error message occurs or an update could be made to an object that automatically creates
|
57
|
+
another object which can be verified)
|
58
|
+
|
59
|
+
---
|
60
|
+
|
61
|
+
## Integration
|
62
|
+
|
63
|
+
Business processes that verify the integration of entities, automated processes, third party systems, etc
|
64
|
+
|
65
|
+
---
|
66
|
+
|
67
|
+
## UI
|
68
|
+
|
69
|
+
Crucial actions can be performed via the UI to verify the User interface.
|
70
|
+
At the moment this library does not assist in UI testing but the plan is
|
71
|
+
to accommodate this in the future through page objects that are tied to
|
72
|
+
metadata.
|
73
|
+
|
74
|
+
---
|
75
|
+
|
76
|
+
## Creation of data
|
77
|
+
|
78
|
+
---?code=spec/integration/creating_spec.rb&lang=ruby&title=Creating entities
|
79
|
+
|
80
|
+
@[1](Declare what it is you're testing)
|
81
|
+
@[2](Define what 'it' is, a the object under test must do)
|
82
|
+
@[3](Create an instance of the object class - nothing sent to Salesforce yet)
|
83
|
+
@[4-5](Set the first and last name to random names)
|
84
|
+
@[6](Create the object in Salesforce by sending request via API)
|
85
|
+
@[7](Verify creation was successful)
|
86
|
+
@[9-12](Creating through Factory)
|
87
|
+
|
88
|
+
---
|
89
|
+
|
90
|
+
## Reading data
|
91
|
+
|
92
|
+
---?code=spec/integration/query_spec.rb&lang=ruby&title=Querying entities
|
93
|
+
|
94
|
+
@[6](Find an object using a specific attribute specific value)
|
95
|
+
@[19](Find an object using a comparator)
|
96
|
+
|
97
|
+
---
|
98
|
+
|
99
|
+
## Updating and deleting data
|
100
|
+
|
101
|
+
---?code=spec/integration/crud_eg_spec.rb&lang=ruby&title=Updating entities
|
102
|
+
|
103
|
+
@[7-8,19-20](Update first name using 'first_name' setting)
|
104
|
+
@[23](Delete test contact)
|
105
|
+
|
106
|
+
---
|
107
|
+
|
108
|
+
## Thank you
|
109
|
+
|
110
|
+
Any questions?
|
data/PITCHME.yaml
ADDED
data/README.md
CHANGED
@@ -50,7 +50,8 @@ E.g.,
|
|
50
50
|
|
51
51
|
`rake` # Run all tests
|
52
52
|
|
53
|
-
API Traffic logs can be seen in the `logs` folder. You can see an example of running through
|
53
|
+
API Traffic logs can be seen in the `logs` folder. You can see an example of running through
|
54
|
+
this [here](https://asciinema.org/a/259098).
|
54
55
|
|
55
56
|
### Understanding how things work
|
56
57
|
|
@@ -158,6 +159,8 @@ Everyone interacting in the LeapSalesforce project’s codebases, issue trackers
|
|
158
159
|
|
159
160
|
# Examples
|
160
161
|
|
162
|
+
See [spec/integration](spec/integration) folder for examples of tests.
|
163
|
+
|
161
164
|
```ruby
|
162
165
|
# deleting old contacts
|
163
166
|
objects = Contact.each_id_with CreatedDate: "<#{5.days.ago}"
|
@@ -167,3 +170,7 @@ objects.each do |id|
|
|
167
170
|
Contact.delete id
|
168
171
|
end
|
169
172
|
```
|
173
|
+
|
174
|
+
# References
|
175
|
+
|
176
|
+
See the presentation on this [here](https://gitpitch.com/leap-dojo/leap_salesforce?grs=gitlab)
|
data/assets/img/logo.png
ADDED
Binary file
|
data/lib/leap_salesforce.rb
CHANGED
@@ -6,7 +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 =
|
9
|
+
Soaspec::OAuth2.retry_limit = 1 # Retrying for OAuth token too many times results in user locked out
|
10
10
|
require 'active_support/core_ext/integer/time' # Creating time objects
|
11
11
|
require 'leap_salesforce/parameters'
|
12
12
|
require 'leap_salesforce/ext/string'
|
@@ -26,13 +26,18 @@ class SoqlData < Exchange
|
|
26
26
|
# contact.last_name = 'Smith'
|
27
27
|
# contact.save! # API request made at this point
|
28
28
|
#
|
29
|
+
# @example Create a Contact by specifying field names
|
30
|
+
# contact = Contact.new first_name: 'Bob', last_name: 'Smith'
|
31
|
+
# contact.save!
|
32
|
+
#
|
29
33
|
# @example Create a contact using a factory with a trait of :email
|
30
34
|
# contact_with_email = FactoryBot.create(:contact, :email)
|
31
35
|
#
|
32
36
|
# @example Perform a get to the Salesforce limits api
|
33
37
|
# SoqlData.new("Limits", method: :get, suburl: 'limits/')
|
34
38
|
#
|
35
|
-
# @param [String] name Name describing object. Defaults to itself
|
39
|
+
# @param [String, Hash] name Name describing object. Defaults to itself. If Hash is provided
|
40
|
+
# with no 'http_parameters' then list will be fields to set on creating entity
|
36
41
|
# @param [Hash] http_parameters Parameters used in making HTTP request. If creating a new object
|
37
42
|
# leave this to empty. Otherwise Hash would look like method: :get, suburl: 'URL_AFTER_SOQL_HANDLER_BASE_URL'
|
38
43
|
def initialize(name = nil, http_parameters = {})
|
@@ -44,6 +49,17 @@ class SoqlData < Exchange
|
|
44
49
|
self.suburl = "sobjects/#{table_name}"
|
45
50
|
optional_name = self.class.to_s == table_name ? '' : "(#{table_name})"
|
46
51
|
self.test_name = "Factory for '#{self.class}'#{optional_name}" unless name
|
52
|
+
return unless name.is_a? Hash
|
53
|
+
|
54
|
+
name.each do |field_name, field_value|
|
55
|
+
send("#{field_name}=", field_value)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# Create object using FactoryBot
|
60
|
+
# @param [Hash] factory_parameters Parameters to pass to FactoryBot
|
61
|
+
def self.create(*factory_parameters)
|
62
|
+
FactoryBot.create(to_s.snakecase.to_sym, *factory_parameters)
|
47
63
|
end
|
48
64
|
|
49
65
|
# @return [String] User used to make api calls
|
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.
|
4
|
+
version: 0.1.12
|
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-
|
12
|
+
date: 2019-07-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -237,6 +237,7 @@ files:
|
|
237
237
|
- ".idea/.rakeTasks"
|
238
238
|
- ".idea/dictionaries/iqa.xml"
|
239
239
|
- ".idea/leap-salesforce.iml"
|
240
|
+
- ".idea/markdown-exported-files.xml"
|
240
241
|
- ".idea/markdown-navigator.xml"
|
241
242
|
- ".idea/markdown-navigator/profiles_settings.xml"
|
242
243
|
- ".idea/misc.xml"
|
@@ -249,8 +250,11 @@ files:
|
|
249
250
|
- ChangeLog
|
250
251
|
- Gemfile
|
251
252
|
- LICENSE.txt
|
253
|
+
- PITCHME.md
|
254
|
+
- PITCHME.yaml
|
252
255
|
- README.md
|
253
256
|
- Rakefile
|
257
|
+
- assets/img/logo.png
|
254
258
|
- bin/console
|
255
259
|
- bin/setup
|
256
260
|
- config/environments/prod.rb
|