leap_salesforce_ui 0.1.3 → 0.1.4
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/ChangeLog +4 -0
- data/README.md +33 -1
- data/exe/leap_salesforce_ui +43 -1
- data/lib/leap_salesforce_ui/generator/appenders.rb +24 -0
- data/lib/leap_salesforce_ui/generator/templates/Rakefile.erb +1 -0
- data/lib/leap_salesforce_ui/generator/templates/spec_helper.rb.erb +21 -0
- data/lib/leap_salesforce_ui/generator/templates/ui_spec.rb.erb +22 -0
- data/lib/leap_salesforce_ui/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: 3481b31ac19a98f7d9fe40b017f0d9d2d047a50a891ed20e079aaee480c0c623
|
4
|
+
data.tar.gz: 72ec8083bcfe9155f7e631fd5354c9d8388104bf9007985440a2518e902576f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34b181f68921877a0e0afe55fd9e4ce91f3273323065c034f8dd63e0e0b85341e1ca27187b6f8e773e25816935615c6e33baf7aab262cf65244eebfdc217de2b
|
7
|
+
data.tar.gz: 9d7d119547de5453559936160ecc520e6d0db99620050c38b6297998b3f99e3e5938bb6875621bc2cdbee698c2d6e1f817743291fa15fb6c08a1435be39d2cd6
|
data/ChangeLog
CHANGED
data/README.md
CHANGED
@@ -40,9 +40,41 @@ LeapSalesforce.ui_user = 'test.user@salesforce.com'
|
|
40
40
|
See [leap salesforce test users section](https://gitlab.com/leap-dojo/leap_salesforce#test-users)
|
41
41
|
for details on ways to set test users.
|
42
42
|
|
43
|
+
### Example spec_helper
|
44
|
+
|
45
|
+
Following is example code that can be used to setup and teardown each test.
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
require 'leap_salesforce_ui'
|
49
|
+
RSpec.configure do |config|
|
50
|
+
LeapSalesforce.ui_user = LeapSalesforce::Users.list.first
|
51
|
+
config.before(:each) do |example|
|
52
|
+
# Start browser with test name as metadata
|
53
|
+
LeapSalesforce.browser example.full_description
|
54
|
+
end
|
55
|
+
|
56
|
+
config.after(:each) do |example|
|
57
|
+
# Take screenshot on failure
|
58
|
+
screenshot = "logs/#{tidy_description(example.full_description.to_s)}_failure.png"
|
59
|
+
LeapSalesforce.browser.screenshot.save screenshot if example.exception
|
60
|
+
# Use a fresh browser for each test
|
61
|
+
LeapSalesforce.close_browser
|
62
|
+
end
|
63
|
+
|
64
|
+
# Tidy RSpec example description so it's suitable for a screenshot name
|
65
|
+
# @return [String] Description of test suitable for file name
|
66
|
+
def tidy_description(rspec_description)
|
67
|
+
rspec_description.delete("#<RSpec::Core::Example").delete('>".:{}').delete("=").delete(" ")
|
68
|
+
end
|
69
|
+
end
|
70
|
+
```
|
71
|
+
|
43
72
|
### Populate form using label in metadata
|
44
73
|
|
45
|
-
Following is a walk through of one of the tests
|
74
|
+
Following is a walk through of one of the tests. If you've copied the above code into `spec/spec_helper.rb`
|
75
|
+
you should be able to copy this code into a new test file and execute it.
|
76
|
+
|
77
|
+
> It may or may not work depending on how the fields Contact has in your org
|
46
78
|
|
47
79
|
```ruby
|
48
80
|
RSpec.describe "Creating record" do
|
data/exe/leap_salesforce_ui
CHANGED
@@ -1,4 +1,46 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
|
4
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
5
|
+
|
6
|
+
require "leap_salesforce/error"
|
7
|
+
require "thor"
|
8
|
+
|
9
|
+
def init_setup?
|
10
|
+
File.exist?(".leap_salesforce.yml")
|
11
|
+
end
|
12
|
+
|
13
|
+
unless init_setup?
|
14
|
+
puts "Setting up leap_salesforce API first"
|
15
|
+
Process.fork { exec("leap_salesforce init") }
|
16
|
+
Process.wait
|
17
|
+
|
18
|
+
raise LeapSalesforce::SetupError, "Unable to setup leap_salesforce" unless init_setup?
|
19
|
+
end
|
20
|
+
|
21
|
+
require "leap_salesforce_ui/version"
|
22
|
+
require "leap_salesforce_ui/generator/appenders"
|
23
|
+
require "colorize"
|
24
|
+
|
25
|
+
module LeapSalesforce
|
26
|
+
# Executable for setting up Leap Salesforce UI
|
27
|
+
class UiExe < Thor
|
28
|
+
include LeapSalesforce::Generators::Appenders
|
29
|
+
|
30
|
+
desc "init", "Create leap salesforce ui configuration"
|
31
|
+
def init
|
32
|
+
puts "Initialising initial files to get started with leap_salesforce_ui"
|
33
|
+
append "Rakefile", "Rakefile.erb"
|
34
|
+
puts 'Running Rake task "leaps:create_poms"'
|
35
|
+
puts `rake leaps:create_poms`
|
36
|
+
append File.join("spec", "spec_helper.rb"), "spec_helper.rb.erb"
|
37
|
+
append File.join("spec", "ui_spec.rb"), "ui_spec.rb.erb"
|
38
|
+
puts "Note test 'ui_spec' is specific to 'Contact' and 'Account' object using fields that
|
39
|
+
may not exist but purely as a demonstration."
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
puts "Using #{LeapSalesforceUi::VERSION} of LeapSalesforceUi"
|
45
|
+
|
46
|
+
LeapSalesforce::UiExe.start(ARGV)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "leap_salesforce/generator/generator"
|
4
|
+
|
5
|
+
module LeapSalesforce
|
6
|
+
module Generators
|
7
|
+
# Used for appending content onto existing files (or adding if not already present)
|
8
|
+
module Appenders
|
9
|
+
include LeapSalesforce::Generator
|
10
|
+
|
11
|
+
# Create content in a file, adding to an existing file if present
|
12
|
+
def append(filename, template_path)
|
13
|
+
FileUtils.touch filename unless File.exist? filename
|
14
|
+
content = read_template template_path, binding, folder: __dir__
|
15
|
+
if File.read(filename).include?(content)
|
16
|
+
puts "File '#{filename}' already has expected content, skipping...".colorize :red
|
17
|
+
else
|
18
|
+
puts "\u2713 Appending to #{filename}".colorize :green
|
19
|
+
open(filename, "a") { |f| f.puts content }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'leap_salesforce_ui/rake'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'leap_salesforce_ui'
|
2
|
+
RSpec.configure do |config|
|
3
|
+
config.before(:each) do |example|
|
4
|
+
# Default to first test user defined for each test
|
5
|
+
LeapSalesforce.ui_user = LeapSalesforce::Users.list.first
|
6
|
+
# Start browser with test name as metadata
|
7
|
+
LeapSalesforce.browser example.full_description
|
8
|
+
end
|
9
|
+
|
10
|
+
config.after(:each) do |example|
|
11
|
+
screenshot = "logs/#{tidy_description(example.full_description.to_s)}_failure.png"
|
12
|
+
LeapSalesforce.browser.screenshot.save screenshot if example.exception
|
13
|
+
LeapSalesforce.close_browser # Fresh browser for each test
|
14
|
+
end
|
15
|
+
|
16
|
+
# Tidy RSpec example description so it's suitable for a screenshot name
|
17
|
+
# @return [String] Description of test suitable for file name
|
18
|
+
def tidy_description(rspec_description)
|
19
|
+
rspec_description.delete("#<RSpec::Core::Example").delete('>".:{}').delete("=").delete(" ")
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
RSpec.describe "Creating record" do
|
3
|
+
let(:first_name) { Faker::Name.first_name }
|
4
|
+
let(:last_name) { Faker::Name.last_name }
|
5
|
+
let(:salutation) { Contact::Salutation.sample }
|
6
|
+
let(:other_street) { Faker::Address.full_address }
|
7
|
+
it "populate form and save" do
|
8
|
+
account = FactoryBot.create(:account)
|
9
|
+
CreateContactPage.visit.submit_with({ "First Name" => first_name,
|
10
|
+
last_name: last_name,
|
11
|
+
salutation: salutation,
|
12
|
+
other_street: other_street,
|
13
|
+
account_id: account.account_name })
|
14
|
+
contact_id = ViewContactPage.id
|
15
|
+
@contact = Contact.find(id: contact_id)
|
16
|
+
expect(@contact.first_name).to eq first_name
|
17
|
+
expect(@contact.last_name).to eq last_name
|
18
|
+
expect(@contact.salutation).to eq salutation
|
19
|
+
expect(@contact.other_street).to eq other_street
|
20
|
+
expect(@contact.account_id).to eq account.id
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leap_salesforce_ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
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: 2021-02-
|
12
|
+
date: 2021-02-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: leap_salesforce
|
@@ -88,8 +88,12 @@ files:
|
|
88
88
|
- lib/leap_salesforce_ui/base_page.rb
|
89
89
|
- lib/leap_salesforce_ui/create_page.rb
|
90
90
|
- lib/leap_salesforce_ui/form_filler.rb
|
91
|
+
- lib/leap_salesforce_ui/generator/appenders.rb
|
91
92
|
- lib/leap_salesforce_ui/generator/page_objects.rb
|
93
|
+
- lib/leap_salesforce_ui/generator/templates/Rakefile.erb
|
92
94
|
- lib/leap_salesforce_ui/generator/templates/create_page.rb.erb
|
95
|
+
- lib/leap_salesforce_ui/generator/templates/spec_helper.rb.erb
|
96
|
+
- lib/leap_salesforce_ui/generator/templates/ui_spec.rb.erb
|
93
97
|
- lib/leap_salesforce_ui/generator/templates/update_page.rb.erb
|
94
98
|
- lib/leap_salesforce_ui/generator/templates/view_page.rb.erb
|
95
99
|
- lib/leap_salesforce_ui/login_page.rb
|