squcumber-postgres 0.0.1 → 0.0.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 70197c6e99837cc7f6a50448932fbf35ec302afe947c4bfcd44a01e7f3932e92
|
4
|
+
data.tar.gz: 922ede0dc2311200bbc309d216237f9e79034642801503d837453c2c6a6ed183
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0356e70c0657e311013139b44759f6b321ec16b31c8354e763892293d86e796dabc0e6cfb5e4c2f25a379abee5fc0af0a44f1036c497cccac2747ebb28358db8
|
7
|
+
data.tar.gz: 5cce4bb175805a4e90e34e248279885e012f092fb74eb94aa84825b159eea95976719e6ef04383d33b29a011e8281af46d7e861d831b1351f2297fa33e547754
|
@@ -14,29 +14,42 @@ module Squcumber
|
|
14
14
|
@features_dir = File.join(FileUtils.pwd, 'features')
|
15
15
|
features = Dir.glob("#{@features_dir}/**/*.feature")
|
16
16
|
parent_directories = features.map { |f| f.split('/')[0..-2].join('/') }.uniq
|
17
|
-
|
18
17
|
features.each do |feature|
|
19
|
-
feature_name = feature.gsub(
|
18
|
+
feature_name = feature.gsub(@features_dir + '/', '').gsub('.feature', '')
|
20
19
|
task_name = feature_name.gsub('/', ':')
|
21
20
|
desc "Run SQL tests for feature #{feature_name}"
|
22
21
|
task "sql:#{task_name}".to_sym, [:scenario_line_number] do |_, args|
|
23
22
|
cucumber_task_name = "cucumber_#{task_name}".to_sym
|
24
23
|
::Cucumber::Rake::Task.new(cucumber_task_name) do |t|
|
25
24
|
line_number = args[:scenario_line_number].nil? ? '' : ":#{args[:scenario_line_number]}"
|
26
|
-
|
25
|
+
output_dir = ENV['CUSTOM_OUTPUT_DIR'] ? ENV['CUSTOM_OUTPUT_DIR'] : '/tmp'
|
26
|
+
output_file = ENV['CUSTOM_OUTPUT_NAME'] ? ENV['CUSTOM_OUTPUT_NAME'] : feature_name.gsub('/', '_')
|
27
|
+
output_path = output_dir + '/' + output_file
|
28
|
+
output_opts = "--format html --out #{output_path}.html --format json --out #{output_path}.json"
|
29
|
+
extra_config = ENV['SQUCUMBER_OPTIONS_EXTRA']
|
30
|
+
t.cucumber_opts = "#{feature}#{line_number} --format pretty #{output_opts} --require #{File.dirname(__FILE__)}/../support --require #{File.dirname(__FILE__)}/../step_definitions #{ENV['CUSTOM_STEPS_DIR'] ? '--require ' + ENV['CUSTOM_STEPS_DIR'] : ''} #{extra_config}"
|
27
31
|
end
|
28
32
|
::Rake::Task[cucumber_task_name].execute
|
29
33
|
end
|
30
34
|
end
|
31
35
|
|
32
36
|
parent_directories.each do |feature|
|
33
|
-
feature_name = feature.gsub(
|
37
|
+
feature_name = feature.gsub(@features_dir + '/', '')
|
34
38
|
task_name = feature_name.gsub('/', ':')
|
35
|
-
|
39
|
+
if feature_name.eql?(@features_dir)
|
40
|
+
feature_name = 'features'
|
41
|
+
task_name = 'all'
|
42
|
+
end
|
43
|
+
desc "Run SQL tests for all features in /#{feature_name}"
|
36
44
|
task "sql:#{task_name}".to_sym do
|
37
45
|
cucumber_task_name = "cucumber_#{task_name}".to_sym
|
38
46
|
::Cucumber::Rake::Task.new(cucumber_task_name) do |t|
|
39
|
-
|
47
|
+
output_dir = ENV['CUSTOM_OUTPUT_DIR'] ? ENV['CUSTOM_OUTPUT_DIR'] : '/tmp'
|
48
|
+
output_file = ENV['CUSTOM_OUTPUT_NAME'] ? ENV['CUSTOM_OUTPUT_NAME'] : feature_name.gsub('/', '_')
|
49
|
+
output_path = output_dir + '/' + output_file
|
50
|
+
output_opts = "--format html --out #{output_path}.html --format json --out #{output_path}.json"
|
51
|
+
extra_config = ENV['SQUCUMBER_OPTIONS_EXTRA']
|
52
|
+
t.cucumber_opts = "#{feature} --format pretty #{output_opts} --require #{File.dirname(__FILE__)}/../support --require #{File.dirname(__FILE__)}/../step_definitions #{ENV['CUSTOM_STEPS_DIR'] ? '--require ' + ENV['CUSTOM_STEPS_DIR'] : ''} #{extra_config}"
|
40
53
|
end
|
41
54
|
::Rake::Task[cucumber_task_name].execute
|
42
55
|
end
|
@@ -86,7 +86,7 @@ When(/^the given SQL files are executed$/) do
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
-
When(/^the SQL file "?([^\s]+)"? is executed/) do |file|
|
89
|
+
When(/^the SQL file "?([^\s"]+)"? is executed/) do |file|
|
90
90
|
silence_streams(STDERR) do
|
91
91
|
TESTING_DATABASE.exec_file("#{@sql_file_path}/#{file}")
|
92
92
|
end
|
@@ -97,9 +97,10 @@ When(/^the resulting table "?([^\s"]*)"? is queried(?:, ordered by "?([^"]*)"?)?
|
|
97
97
|
@result = TESTING_DATABASE.query("select * from #{table} #{sort_statement};").map { |e| e }
|
98
98
|
end
|
99
99
|
|
100
|
-
Then(/^the result starts with.*$/) do |data|
|
100
|
+
Then(/^the result( with date placeholders)? starts with.*$/) do |placeholder, data|
|
101
101
|
actual = @result[0..(data.hashes.length - 1)] || []
|
102
102
|
expected = data.hashes || []
|
103
|
+
expected = convert_mock_values(expected) if placeholder
|
103
104
|
|
104
105
|
expected.each_with_index do |hash, i|
|
105
106
|
raise("Does not start with expected result, got:\n#{format_error(data, actual)}") unless actual[i].all? do |key, value|
|
@@ -108,9 +109,10 @@ Then(/^the result starts with.*$/) do |data|
|
|
108
109
|
end
|
109
110
|
end
|
110
111
|
|
111
|
-
Then(/^the result includes.*$/) do |data|
|
112
|
+
Then(/^the result( with date placeholders)? includes.*$/) do |placeholder, data|
|
112
113
|
actual = @result || []
|
113
114
|
expected = data.hashes || []
|
115
|
+
expected = convert_mock_values(expected) if placeholder
|
114
116
|
|
115
117
|
expected.each do |hash|
|
116
118
|
raise("Result is not included, got:\n#{format_error(data, actual)}") unless actual.any? do |row|
|
@@ -121,9 +123,10 @@ Then(/^the result includes.*$/) do |data|
|
|
121
123
|
end
|
122
124
|
end
|
123
125
|
|
124
|
-
Then(/^the result does not include.*$/) do |data|
|
126
|
+
Then(/^the result( with date placeholders)? does not include.*$/) do |placeholder, data|
|
125
127
|
actual = @result || []
|
126
128
|
expected = data.hashes || []
|
129
|
+
expected = convert_mock_values(expected) if placeholder
|
127
130
|
|
128
131
|
expected.each do |hash|
|
129
132
|
raise("Result is included, got:\n#{format_error(data, actual)}") if actual.any? do |row|
|
@@ -134,9 +137,10 @@ Then(/^the result does not include.*$/) do |data|
|
|
134
137
|
end
|
135
138
|
end
|
136
139
|
|
137
|
-
Then(/^the result exactly matches.*$/) do |data|
|
140
|
+
Then(/^the result( with date placeholders)? exactly matches.*$/) do |placeholder, data|
|
138
141
|
actual = @result || []
|
139
142
|
expected = data.hashes || []
|
143
|
+
expected = convert_mock_values(expected) if placeholder
|
140
144
|
|
141
145
|
raise("Does not match exactly, got:\n#{format_error(data, actual)}") if actual.length != expected.length
|
142
146
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: squcumber-postgres
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefanie Grunwald
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|
@@ -166,10 +166,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
166
|
version: '0'
|
167
167
|
requirements: []
|
168
168
|
rubyforge_project:
|
169
|
-
rubygems_version: 2.6
|
169
|
+
rubygems_version: 2.7.6
|
170
170
|
signing_key:
|
171
171
|
specification_version: 3
|
172
|
-
summary: Define and execute SQL integration tests for
|
172
|
+
summary: Define and execute SQL integration tests for Postgres databases
|
173
173
|
test_files:
|
174
174
|
- spec/spec_helper.rb
|
175
175
|
- spec/squcumber-postgres/mock/database_spec.rb
|