pretest 1.12.0

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.
@@ -0,0 +1,35 @@
1
+ <% if web_scaffold == 'true' -%>
2
+ Feature: Validate LemonStudio Tests page.
3
+
4
+ Background:
5
+ Given I am on "https://lemonstudio.io/trainning"
6
+
7
+ @tag @tag1
8
+ Scenario: Check buttons, select box, checkbox, and fields in current page
9
+ And I click on "btn_one" button
10
+ When I select "ExampleOne" from "select_box"
11
+ And I check "opt_one" in check box
12
+ And I fill in "first_name" with "Test"
13
+ Then I expect to not see "#btn_one"
14
+
15
+ @tag @tag2
16
+ Scenario: Check each buttons, select box, checkbox, and fields in current page
17
+ And I click on each button
18
+ When I select "ExampleOne" from "select_box"
19
+ And I check each check box
20
+ And I fill in all fields
21
+ Then I expect to see all the buttons in buttons panel
22
+ <% end -%>
23
+ <% if api_scaffold == 'true' -%>
24
+ Feature: API examples
25
+
26
+ Background: Store the current environment url, and validate the current state
27
+ Given I make an "GET" in "https://jsonplaceholder.typicode.com/" and i receive an status "200"
28
+
29
+ Scenario: Make an simple GET on current environment
30
+ When I save my verb as "GET" with endpoint "posts" using query_params as "empty"
31
+ And I set my header as "default" and my payload as "default"
32
+ And I submit my request
33
+ Then I expect to receive an status "200"
34
+ And I expect to receive my response as "Array" format
35
+ <% end -%>
@@ -0,0 +1,30 @@
1
+ <% if web_scaffold == 'true' -%>
2
+ class Example
3
+
4
+ include Capybara::DSL
5
+
6
+ def buttons_click
7
+ all("button").each do |btn|
8
+ btn.click
9
+ end
10
+ end
11
+
12
+ def all_check_box
13
+ all("*[type='checkbox']").each(&:click)
14
+ end
15
+
16
+ def fill_each_fields
17
+ all("input[class='form-control']").each do |field|
18
+ field.set("#{field['placeholder']} #{rand(100..999)}")
19
+ end
20
+ end
21
+
22
+ def has_buttons
23
+ assert_selector("#btn_one")
24
+ assert_selector("#btn_two")
25
+ assert_selector("#btn_three")
26
+ assert_selector("#btn_link")
27
+ end
28
+
29
+ end
30
+ <% end -%>
@@ -0,0 +1,28 @@
1
+ require 'calabash-cucumber/launcher'
2
+
3
+ module Calabash::Launcher
4
+ @@launcher = nil
5
+
6
+ def self.launcher
7
+ @@launcher ||= Calabash::Cucumber::Launcher.new
8
+ end
9
+
10
+ def self.launcher=(launcher)
11
+ @@launcher = launcher
12
+ end
13
+ end
14
+
15
+ Before do |scenario|
16
+ launcher = Calabash::Launcher.launcher
17
+ options = {
18
+ # Add launch options here.
19
+ }
20
+
21
+ launcher.relaunch(options)
22
+ end
23
+
24
+ After do |scenario|
25
+ if launcher.quit_app_after_scenario?
26
+ calabash_exit
27
+ end
28
+ end
@@ -0,0 +1,18 @@
1
+ <% if web == 'false' &&
2
+ ( web_scaffold == 'false' &&
3
+ ( api == 'false' &&
4
+ ( api_scaffold == 'false' &&
5
+ ( clean_install == 'false' &&
6
+ ( ios == 'false' &&
7
+ ( android == 'false')))))) -%>
8
+ require 'selenium-webdriver'
9
+ <% end -%>
10
+ <% if web == 'true' || web_scaffold == 'true' -%>
11
+ require 'selenium-webdriver'
12
+ <% end -%>
13
+ <% if web_scaffold == 'true' -%>
14
+
15
+ Before do
16
+ @example = Example.new
17
+ end
18
+ <% end -%>
@@ -0,0 +1,129 @@
1
+ <% if web_scaffold == 'true' -%>
2
+ # Visit web page
3
+ Given(/^I am on "([^"]*)"$/) do |site|
4
+ visit(site)
5
+ end
6
+
7
+ # Click on item by first index
8
+ Given(/^I click on "([^"]*)" item by index$/) do |btn|
9
+ all("btn")[0].click
10
+ end
11
+
12
+ # Click on first item
13
+ Given(/^I click on "([^"]*)" first item match$/) do |btn|
14
+ first(btn).click
15
+ end
16
+
17
+ # Click on item by button id
18
+ Given(/^I click on "([^"]*)" button$/) do |btn|
19
+ click_button(btn)
20
+ end
21
+
22
+ # Click on item by text link
23
+ Given(/^I click on "([^"]*)" link$/) do |link|
24
+ click_link(link)
25
+ end
26
+
27
+ # Select option by id
28
+ When(/^I select "([^"]*)" from "([^"]*)"$/) do |option, select_box|
29
+ select(option, from: select_box)
30
+ end
31
+
32
+ # Select option using id
33
+ When(/^I select "([^"]*)" from "([^"]*)" using id option$/) do |option, select_box|
34
+ select(option, from: select_box)
35
+ end
36
+
37
+ # Select option using first index
38
+ When(/^I select "([^"]*)" from "([^"]*)" using index option$/) do |option, select_box|
39
+ select(option, from: select_box)
40
+ end
41
+
42
+ # Check box using id option
43
+ When(/^I check "([^"]*)" in check box$/) do |check|
44
+ check(check)
45
+ end
46
+
47
+ # Fill in fields
48
+ When(/^I fill in "([^"]*)" with "([^"]*)"$/) do |field, value|
49
+ fill_in(field, with: value)
50
+ end
51
+
52
+ # Assert that an element does not exists
53
+ Then(/^I expect to not see "([^"]*)"$/) do |css|
54
+ assert_no_selector(css)
55
+ end
56
+
57
+ # Click on each button using an Example class based on PageObject
58
+ Given(/^I click on each button$/) do
59
+ @example.buttons_click
60
+ end
61
+
62
+ # Click on each check box using an Example class based on PageObject
63
+ When(/^I check each check box$/) do
64
+ @example.all_check_box
65
+ end
66
+
67
+ # Fill in all fields using an Example class based on PageObject
68
+ When(/^I fill in all fields$/) do
69
+ @example.fill_each_fields
70
+ end
71
+
72
+ # Assert that a list of buttons is not being showed using an Example class based on PageObject
73
+ Then(/^I expect to see all the buttons in buttons panel$/) do
74
+ @example.has_buttons
75
+ end
76
+ <% end -%>
77
+ <% if api_scaffold == 'true' -%>
78
+ # Define default values used on project example
79
+ VALUES = {
80
+ "default" =>"",
81
+ "empty" =>"",
82
+ "json_type"=>{
83
+ :"Content-Type"=>"application/json"
84
+ }
85
+ }
86
+
87
+ # Make an simple request and validate his status code
88
+ Given(/^I make an "([^"]*)" in "([^"]*)" and i receive an status "([^"]*)"$/) do |verb, url, status|
89
+ @url = url
90
+ response = RestClient::Request.execute(method: verb.downcase.to_sym,
91
+ url: @url)
92
+ expect(response.code).to eql(status.to_i)
93
+ end
94
+
95
+ # Save verb/endpoint/query_params to use in current request
96
+ When(/^I save my verb as "([^"]*)" with endpoint "([^"]*)" using query_params as "([^"]*)"$/) do |verb, endpoint, query_params|
97
+ @verb = verb.downcase.to_sym
98
+ @endpoint = endpoint
99
+ @query_params = VALUES[query_params]
100
+ end
101
+
102
+ # Set header and payload data based on default values
103
+ When(/^I set my header as "([^"]*)" and my payload as "([^"]*)"$/) do |header, payload|
104
+ @header = VALUES[header]
105
+ @payload = VALUES[payload]
106
+ end
107
+
108
+ # Submit current request with defined configs, and save request/response/body data from request
109
+ When(/^I submit my request$/) do
110
+ RestClient::Request.execute(method: @verb,
111
+ url: @url + @endpoint + @query_params,
112
+ payload: @payload,
113
+ header: @header) do |res,req,results|
114
+ @request = req
115
+ @response = res
116
+ @body = JSON.parse(res.body)
117
+ end
118
+ end
119
+
120
+ # Validate status code from current request
121
+ Then(/^I expect to receive an status "([^"]*)"$/) do |status|
122
+ expect(@response.code).to eql(status.to_i)
123
+ end
124
+
125
+ # Validate response body format
126
+ Then(/^I expect to receive my response as "([^"]*)" format$/) do |type|
127
+ expect(@body.class.to_s).to eql(type)
128
+ end
129
+ <% end -%>
@@ -0,0 +1,3 @@
1
+ module Pretest
2
+ VERSION = '1.12.0'.freeze
3
+ end
@@ -0,0 +1,30 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'pretest/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'pretest'
7
+ spec.version = Pretest::VERSION
8
+ spec.authors = ['Lucas Machado', 'Murilo Machado']
9
+ spec.email = ['lucas.dpmachado@gmail.com', 'murilo.paula.machado@gmail.com']
10
+
11
+ spec.summary = 'Cucumber web, desktop and mobile project creator'
12
+ spec.description = 'A gem that creates a cucumber project structure'
13
+ spec.homepage = 'https://github.com/Lemon-Studio/pretest'
14
+ spec.license = 'AGPL-3.0'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = 'bin'
18
+ spec.executables = 'pretest'
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_development_dependency 'bundler', '~> 1.14', '>= 1.14.6'
22
+ spec.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
23
+ spec.add_development_dependency 'rspec', '~> 3.7', '>= 3.7.0'
24
+
25
+ spec.add_runtime_dependency 'nokogiri', '~> 1.8.5'
26
+ spec.add_runtime_dependency 'pry', '~> 0.10.4'
27
+ spec.add_runtime_dependency 'rest-client', '~> 2.0', '>= 2.0.2'
28
+ spec.add_runtime_dependency 'rubyzip', '~> 1.2', '>= 1.2.1'
29
+ spec.add_runtime_dependency 'thor', '~> 0'
30
+ end
metadata ADDED
@@ -0,0 +1,224 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pretest
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.12.0
5
+ platform: ruby
6
+ authors:
7
+ - Lucas Machado
8
+ - Murilo Machado
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2018-12-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.14'
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.14.6
24
+ type: :development
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - "~>"
29
+ - !ruby/object:Gem::Version
30
+ version: '1.14'
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.14.6
34
+ - !ruby/object:Gem::Dependency
35
+ name: rake
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '12.0'
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 12.0.0
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '12.0'
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 12.0.0
54
+ - !ruby/object:Gem::Dependency
55
+ name: rspec
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.7'
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 3.7.0
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '3.7'
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 3.7.0
74
+ - !ruby/object:Gem::Dependency
75
+ name: nokogiri
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: 1.8.5
81
+ type: :runtime
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: 1.8.5
88
+ - !ruby/object:Gem::Dependency
89
+ name: pry
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: 0.10.4
95
+ type: :runtime
96
+ prerelease: false
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: 0.10.4
102
+ - !ruby/object:Gem::Dependency
103
+ name: rest-client
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '2.0'
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: 2.0.2
112
+ type: :runtime
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '2.0'
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: 2.0.2
122
+ - !ruby/object:Gem::Dependency
123
+ name: rubyzip
124
+ requirement: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '1.2'
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 1.2.1
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.2'
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: 1.2.1
142
+ - !ruby/object:Gem::Dependency
143
+ name: thor
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ type: :runtime
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ description: A gem that creates a cucumber project structure
157
+ email:
158
+ - lucas.dpmachado@gmail.com
159
+ - murilo.paula.machado@gmail.com
160
+ executables:
161
+ - pretest
162
+ extensions: []
163
+ extra_rdoc_files: []
164
+ files:
165
+ - ".gitignore"
166
+ - ".rspec"
167
+ - ".rubocop.yml"
168
+ - ".travis.yml"
169
+ - Gemfile
170
+ - Gemfile.lock
171
+ - LICENSE.txt
172
+ - README.md
173
+ - Rakefile
174
+ - bin/console
175
+ - bin/pretest
176
+ - bin/setup
177
+ - lib/pretest.rb
178
+ - lib/pretest/cli.rb
179
+ - lib/pretest/config/linux.rb
180
+ - lib/pretest/config/mac.rb
181
+ - lib/pretest/config/operational_system.rb
182
+ - lib/pretest/config/unix.rb
183
+ - lib/pretest/config/windows.rb
184
+ - lib/pretest/environment/check.rb
185
+ - lib/pretest/mobile/environment.rb
186
+ - lib/pretest/structure/clone.rb
187
+ - lib/pretest/structure/clone/Gemfile.tt
188
+ - lib/pretest/structure/clone/app_installation_hook.rb.tt
189
+ - lib/pretest/structure/clone/app_life_cycle_hooks.rb.tt
190
+ - lib/pretest/structure/clone/cucumber.yml.tt
191
+ - lib/pretest/structure/clone/dry_run.rb.tt
192
+ - lib/pretest/structure/clone/env.rb.tt
193
+ - lib/pretest/structure/clone/example.feature.tt
194
+ - lib/pretest/structure/clone/example.rb.tt
195
+ - lib/pretest/structure/clone/first_launch.rb.tt
196
+ - lib/pretest/structure/clone/hooks.rb.tt
197
+ - lib/pretest/structure/clone/step_definitions.rb.tt
198
+ - lib/pretest/version.rb
199
+ - pretest.gemspec
200
+ homepage: https://github.com/Lemon-Studio/pretest
201
+ licenses:
202
+ - AGPL-3.0
203
+ metadata: {}
204
+ post_install_message:
205
+ rdoc_options: []
206
+ require_paths:
207
+ - lib
208
+ required_ruby_version: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ required_rubygems_version: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - ">="
216
+ - !ruby/object:Gem::Version
217
+ version: '0'
218
+ requirements: []
219
+ rubyforge_project:
220
+ rubygems_version: 2.7.7
221
+ signing_key:
222
+ specification_version: 4
223
+ summary: Cucumber web, desktop and mobile project creator
224
+ test_files: []