fitting 2.17.0 → 2.18.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +31 -3
- data/CHANGELOG.md +5 -0
- data/fitting.gemspec +7 -7
- data/lib/fitting/configuration/legacy.rb +6 -5
- data/lib/fitting/configuration/yaml.rb +2 -2
- data/lib/fitting/cover/json_schema.rb +3 -2
- data/lib/fitting/cover/json_schema_enum.rb +1 -1
- data/lib/fitting/cover/json_schema_one_of.rb +1 -1
- data/lib/fitting/cover/response.rb +1 -5
- data/lib/fitting/documentation.rb +0 -2
- data/lib/fitting/matchers/response_matcher.rb +2 -1
- data/lib/fitting/records/documented/request.rb +1 -0
- data/lib/fitting/records/realized_unit.rb +13 -15
- data/lib/fitting/records/spherical/request.rb +1 -1
- data/lib/fitting/records/spherical/requests.rb +2 -1
- data/lib/fitting/records/spherical/response.rb +2 -2
- data/lib/fitting/records/test_unit/request.rb +4 -0
- data/lib/fitting/records/tested/request.rb +1 -1
- data/lib/fitting/records/unit/combination.rb +5 -6
- data/lib/fitting/records/unit/json_schema.rb +38 -33
- data/lib/fitting/records/unit/request.rb +1 -0
- data/lib/fitting/records/unit/response.rb +1 -0
- data/lib/fitting/report/action.rb +6 -9
- data/lib/fitting/report/actions.rb +7 -5
- data/lib/fitting/report/combination.rb +1 -15
- data/lib/fitting/report/combinations.rb +5 -6
- data/lib/fitting/report/console.rb +4 -3
- data/lib/fitting/report/prefix.rb +42 -51
- data/lib/fitting/report/prefixes.rb +3 -3
- data/lib/fitting/report/response.rb +17 -18
- data/lib/fitting/report/responses.rb +9 -8
- data/lib/fitting/report/test.rb +9 -11
- data/lib/fitting/report/tests.rb +10 -13
- data/lib/fitting/request.rb +0 -1
- data/lib/fitting/response.rb +4 -3
- data/lib/fitting/statistics/cover_error.rb +2 -0
- data/lib/fitting/statistics/cover_error_enum.rb +2 -0
- data/lib/fitting/statistics/cover_error_one_of.rb +2 -0
- data/lib/fitting/statistics/list.rb +5 -4
- data/lib/fitting/statistics/not_covered_responses.rb +1 -1
- data/lib/fitting/statistics/percent.rb +2 -1
- data/lib/fitting/statistics/template.rb +10 -8
- data/lib/fitting/storage/white_list.rb +7 -0
- data/lib/fitting/templates/realized_template.rb +2 -0
- data/lib/fitting/tests.rb +1 -1
- data/lib/fitting/version.rb +1 -1
- data/lib/fitting.rb +5 -2
- data/lib/tasks/fitting.rake +62 -54
- metadata +17 -49
@@ -3,79 +3,70 @@ require 'fitting/report/actions'
|
|
3
3
|
module Fitting
|
4
4
|
module Report
|
5
5
|
class Prefix
|
6
|
-
def initialize(name: '', openapi2_json_path: nil, openapi3_yaml_path: nil,
|
6
|
+
def initialize(name: '', openapi2_json_path: nil, openapi3_yaml_path: nil,
|
7
|
+
drafter_yaml_path: nil, tomogram_json_path: nil, crafter_yaml_path: nil, skip: false)
|
7
8
|
@name = name
|
8
9
|
@tomogram_json_path = tomogram_json_path
|
9
10
|
@tests = Fitting::Report::Tests.new([])
|
10
11
|
@skip = skip
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
return if skip
|
13
|
+
|
14
|
+
@actions = if openapi2_json_path
|
15
|
+
Fitting::Report::Actions.new(
|
16
|
+
Tomograph::Tomogram.new(
|
17
|
+
prefix: name,
|
18
|
+
openapi2_json_path: openapi2_json_path
|
18
19
|
)
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
)
|
21
|
+
elsif openapi3_yaml_path
|
22
|
+
Fitting::Report::Actions.new(
|
23
|
+
Tomograph::Tomogram.new(
|
24
|
+
prefix: name,
|
25
|
+
openapi3_yaml_path: openapi3_yaml_path
|
25
26
|
)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
27
|
+
)
|
28
|
+
elsif drafter_yaml_path
|
29
|
+
Fitting::Report::Actions.new(
|
30
|
+
Tomograph::Tomogram.new(
|
31
|
+
prefix: name,
|
32
|
+
drafter_yaml_path: drafter_yaml_path
|
32
33
|
)
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
)
|
35
|
+
elsif crafter_yaml_path
|
36
|
+
Fitting::Report::Actions.new(
|
37
|
+
Tomograph::Tomogram.new(
|
38
|
+
prefix: name,
|
39
|
+
crafter_yaml_path: crafter_yaml_path
|
39
40
|
)
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
41
|
+
)
|
42
|
+
else
|
43
|
+
Fitting::Report::Actions.new(
|
44
|
+
Tomograph::Tomogram.new(
|
45
|
+
prefix: name,
|
46
|
+
tomogram_json_path: tomogram_json_path
|
46
47
|
)
|
47
|
-
|
48
|
-
|
48
|
+
)
|
49
|
+
end
|
49
50
|
end
|
50
51
|
|
51
|
-
|
52
|
-
@name
|
53
|
-
end
|
54
|
-
|
55
|
-
def tests
|
56
|
-
@tests
|
57
|
-
end
|
52
|
+
attr_reader :name, :tests, :actions
|
58
53
|
|
59
54
|
def skip?
|
60
55
|
@skip
|
61
56
|
end
|
62
57
|
|
63
|
-
def actions
|
64
|
-
@actions
|
65
|
-
end
|
66
|
-
|
67
58
|
def details
|
68
59
|
if @skip
|
69
60
|
{
|
70
|
-
|
71
|
-
|
72
|
-
|
61
|
+
name: @name,
|
62
|
+
tests_size: @tests.size,
|
63
|
+
actions: { tests_without_actions: [], actions_details: [] }
|
73
64
|
}
|
74
65
|
else
|
75
66
|
{
|
76
|
-
|
77
|
-
|
78
|
-
|
67
|
+
name: @name,
|
68
|
+
tests_size: @tests.size,
|
69
|
+
actions: @actions.details(self)
|
79
70
|
}
|
80
71
|
end
|
81
72
|
end
|
@@ -20,7 +20,7 @@ module Fitting
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
23
|
+
def there_a_suitable_prefix?(test_path)
|
24
24
|
@prefixes.map do |prefix|
|
25
25
|
return true if prefix.name.nil?
|
26
26
|
return true if prefix.name == ''
|
@@ -34,14 +34,14 @@ module Fitting
|
|
34
34
|
@prefixes.map do |prefix|
|
35
35
|
if prefix.name.nil? || prefix.name == '' || test.path[0..prefix.name.size - 1] == prefix.name
|
36
36
|
prefix.add_test(test)
|
37
|
-
|
37
|
+
break
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
42
|
def join(tests)
|
43
43
|
tests.to_a.map do |test|
|
44
|
-
if
|
44
|
+
if there_a_suitable_prefix?(test.path)
|
45
45
|
cram_into_the_appropriate_prefix(test)
|
46
46
|
test.mark_prefix
|
47
47
|
end
|
@@ -21,31 +21,27 @@ module Fitting
|
|
21
21
|
@response['body'] || @response[:body]
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
@id
|
26
|
-
end
|
24
|
+
attr_reader :id, :tests
|
27
25
|
|
28
26
|
def add_test(test)
|
29
27
|
@tests.push(test)
|
30
28
|
end
|
31
29
|
|
32
|
-
def tests
|
33
|
-
@tests
|
34
|
-
end
|
35
|
-
|
36
30
|
def combinations
|
37
31
|
return @combinations if @combinations
|
38
32
|
|
39
33
|
cmbntns = []
|
40
|
-
combinations = Fitting::Cover::JSONSchema.new(body).combi +
|
34
|
+
combinations = Fitting::Cover::JSONSchema.new(body).combi +
|
35
|
+
Fitting::Cover::JSONSchemaEnum.new(body).combi +
|
36
|
+
Fitting::Cover::JSONSchemaOneOf.new(body).combi
|
41
37
|
if combinations != []
|
42
38
|
combinations.map do |combination|
|
43
39
|
cmbntns.push(
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
40
|
+
Fitting::Report::Combination.new(
|
41
|
+
json_schema: combination[0],
|
42
|
+
type: combination[1][0],
|
43
|
+
combination: combination[1][1]
|
44
|
+
)
|
49
45
|
)
|
50
46
|
end
|
51
47
|
end
|
@@ -54,16 +50,19 @@ module Fitting
|
|
54
50
|
end
|
55
51
|
|
56
52
|
def cover_percent
|
57
|
-
return '0%' if @tests.size
|
58
|
-
return '100%' if @combinations.size
|
53
|
+
return '0%' if @tests.size.zero?
|
54
|
+
return '100%' if @combinations.size.zero?
|
55
|
+
|
59
56
|
"#{(@combinations.size_with_tests + 1) * 100 / (@combinations.size + 1)}%"
|
60
57
|
end
|
61
58
|
|
62
59
|
def details
|
63
60
|
{
|
64
|
-
|
65
|
-
|
66
|
-
|
61
|
+
cover_percent: cover_percent,
|
62
|
+
tests_without_combinations: @tests.without_combinations,
|
63
|
+
combinations_details: @combinations.to_a.map do |c|
|
64
|
+
{ json_schema: c.id, tests_size: c.tests.size, type: c.type, name: c.name }
|
65
|
+
end
|
67
66
|
}
|
68
67
|
end
|
69
68
|
end
|
@@ -17,18 +17,19 @@ module Fitting
|
|
17
17
|
|
18
18
|
def join(tests)
|
19
19
|
tests.to_a.map do |test|
|
20
|
-
if
|
20
|
+
if there_a_suitable_response?(test)
|
21
21
|
cram_into_the_appropriate_response(test)
|
22
22
|
test.mark_response
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
def
|
27
|
+
def there_a_suitable_response?(test)
|
28
28
|
return false if @responses.nil?
|
29
|
+
|
29
30
|
@responses.map do |response|
|
30
31
|
return true if response.status.to_s == test.status &&
|
31
|
-
|
32
|
+
JSON::Validator.fully_validate(response.body, test.body) == []
|
32
33
|
end
|
33
34
|
|
34
35
|
false
|
@@ -36,11 +37,11 @@ module Fitting
|
|
36
37
|
|
37
38
|
def cram_into_the_appropriate_response(test)
|
38
39
|
@responses.map do |response|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
next unless response.status.to_s == test.status &&
|
41
|
+
JSON::Validator.fully_validate(response.body, test.body) == []
|
42
|
+
|
43
|
+
response.add_test(test)
|
44
|
+
break
|
44
45
|
end
|
45
46
|
end
|
46
47
|
end
|
data/lib/fitting/report/test.rb
CHANGED
@@ -10,16 +10,14 @@ module Fitting
|
|
10
10
|
@id = SecureRandom.hex
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
@id
|
15
|
-
end
|
13
|
+
attr_reader :id
|
16
14
|
|
17
15
|
def to_h
|
18
16
|
{
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
17
|
+
path: path,
|
18
|
+
method: method,
|
19
|
+
status: status,
|
20
|
+
body: body
|
23
21
|
}
|
24
22
|
end
|
25
23
|
|
@@ -55,19 +53,19 @@ module Fitting
|
|
55
53
|
@combination = true
|
56
54
|
end
|
57
55
|
|
58
|
-
def
|
56
|
+
def there_a_prefix?
|
59
57
|
@prefix
|
60
58
|
end
|
61
59
|
|
62
|
-
def
|
60
|
+
def there_an_actions?
|
63
61
|
@action
|
64
62
|
end
|
65
63
|
|
66
|
-
def
|
64
|
+
def there_an_responses?
|
67
65
|
@response
|
68
66
|
end
|
69
67
|
|
70
|
-
def
|
68
|
+
def there_an_combinations?
|
71
69
|
@combination
|
72
70
|
end
|
73
71
|
end
|
data/lib/fitting/report/tests.rb
CHANGED
@@ -10,7 +10,7 @@ module Fitting
|
|
10
10
|
def self.new_from_config(tests_path)
|
11
11
|
tests = []
|
12
12
|
Dir[tests_path].each do |file|
|
13
|
-
JSON.
|
13
|
+
JSON.parse(File.read(file)).map do |test|
|
14
14
|
tests.push(Fitting::Report::Test.new(test))
|
15
15
|
end
|
16
16
|
end
|
@@ -19,30 +19,26 @@ module Fitting
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def without_prefixes
|
22
|
-
@tests.
|
23
|
-
result.push(test.path) unless test.
|
24
|
-
result
|
22
|
+
@tests.each_with_object([]) do |test, result|
|
23
|
+
result.push(test.path) unless test.there_a_prefix?
|
25
24
|
end
|
26
25
|
end
|
27
26
|
|
28
27
|
def without_actions
|
29
|
-
@tests.
|
30
|
-
result.push("#{test.method} #{test.path}") unless test.
|
31
|
-
result
|
28
|
+
@tests.each_with_object([]) do |test, result|
|
29
|
+
result.push("#{test.method} #{test.path}") unless test.there_an_actions?
|
32
30
|
end
|
33
31
|
end
|
34
32
|
|
35
33
|
def without_responses
|
36
|
-
@tests.
|
37
|
-
result.push(test.id) unless test.
|
38
|
-
result
|
34
|
+
@tests.each_with_object([]) do |test, result|
|
35
|
+
result.push(test.id) unless test.there_an_responses?
|
39
36
|
end
|
40
37
|
end
|
41
38
|
|
42
39
|
def without_combinations
|
43
|
-
@tests.
|
44
|
-
result.push(test.path) unless test.
|
45
|
-
result
|
40
|
+
@tests.each_with_object([]) do |test, result|
|
41
|
+
result.push(test.path) unless test.there_an_combinations?
|
46
42
|
end
|
47
43
|
end
|
48
44
|
|
@@ -60,6 +56,7 @@ module Fitting
|
|
60
56
|
|
61
57
|
def to_h
|
62
58
|
return @hash if @hash
|
59
|
+
|
63
60
|
@hash = @tests.inject({}) do |res, test|
|
64
61
|
res.merge!(test.id => test.to_h)
|
65
62
|
end
|
data/lib/fitting/request.rb
CHANGED
data/lib/fitting/response.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'fitting/request'
|
2
2
|
require 'fitting/response/fully_validates'
|
3
3
|
require 'json'
|
4
|
-
require 'multi_json'
|
5
4
|
|
6
5
|
module Fitting
|
7
6
|
class Response
|
@@ -27,7 +26,7 @@ module Fitting
|
|
27
26
|
end
|
28
27
|
|
29
28
|
def documented?
|
30
|
-
@schemas
|
29
|
+
@schemas&.present?
|
31
30
|
end
|
32
31
|
|
33
32
|
def route
|
@@ -47,7 +46,7 @@ module Fitting
|
|
47
46
|
end
|
48
47
|
|
49
48
|
def got
|
50
|
-
JSON.pretty_generate(
|
49
|
+
JSON.pretty_generate(JSON.parse(@body))
|
51
50
|
end
|
52
51
|
|
53
52
|
def expected
|
@@ -68,6 +67,7 @@ module Fitting
|
|
68
67
|
|
69
68
|
def index
|
70
69
|
return @index_res if @index_res
|
70
|
+
|
71
71
|
@index_res = []
|
72
72
|
@schemas.size.times do |i|
|
73
73
|
@index_res.push(i) if fully_validates[i] == []
|
@@ -77,6 +77,7 @@ module Fitting
|
|
77
77
|
|
78
78
|
def strict_index
|
79
79
|
return @strict_index_res if @strict_index_res
|
80
|
+
|
80
81
|
@strict_index_res = []
|
81
82
|
@schemas.size.times do |i|
|
82
83
|
@strict_index_res.push(i) if strict_fully_validates[i] == []
|
@@ -10,9 +10,11 @@ module Fitting
|
|
10
10
|
@request_unit.map do |request|
|
11
11
|
request.responses.map do |response|
|
12
12
|
next unless response.tested_bodies != []
|
13
|
+
|
13
14
|
response.json_schemas.map do |json_schema|
|
14
15
|
json_schema.combinations.map do |combination|
|
15
16
|
next unless combination.valid_bodies == []
|
17
|
+
|
16
18
|
res += "request method: #{request.method}\nrequest path: #{request.path}\n"\
|
17
19
|
"response status: #{response.status}\nsource json-schema: #{json_schema.json_schema}\n"\
|
18
20
|
"combination: #{combination.description}\nnew json-schema: #{combination.json_schema}\n\n"
|
@@ -10,9 +10,11 @@ module Fitting
|
|
10
10
|
@request_unit.map do |request|
|
11
11
|
request.responses.map do |response|
|
12
12
|
next unless response.tested_bodies != []
|
13
|
+
|
13
14
|
response.json_schemas.map do |json_schema|
|
14
15
|
json_schema.combinations_with_enum.map do |combination|
|
15
16
|
next unless combination.valid_bodies == []
|
17
|
+
|
16
18
|
res += "request method: #{request.method}\nrequest path: #{request.path}\n"\
|
17
19
|
"response status: #{response.status}\nsource json-schema: #{json_schema.json_schema}\n"\
|
18
20
|
"combination: #{combination.description}\nnew json-schema: #{combination.json_schema}\n\n"
|
@@ -10,9 +10,11 @@ module Fitting
|
|
10
10
|
@request_unit.map do |request|
|
11
11
|
request.responses.map do |response|
|
12
12
|
next unless response.tested_bodies != []
|
13
|
+
|
13
14
|
response.json_schemas.map do |json_schema|
|
14
15
|
json_schema.combinations_with_one_of.map do |combination|
|
15
16
|
next unless combination.valid_bodies == []
|
17
|
+
|
16
18
|
res += "request method: #{request.method}\nrequest path: #{request.path}\n"\
|
17
19
|
"response status: #{response.status}\nsource json-schema: #{json_schema.json_schema}\n"\
|
18
20
|
"combination: #{combination.description}\nnew json-schema: #{combination.json_schema}\n\n"
|
@@ -35,17 +35,18 @@ module Fitting
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def json_schema_stat(res, json_schema, response)
|
38
|
-
|
38
|
+
case @depth
|
39
|
+
when 'valid'
|
39
40
|
if json_schema.bodies == []
|
40
41
|
res.push("✖ #{response.status}")
|
41
42
|
else
|
42
43
|
res.push("✔ #{response.status}")
|
43
44
|
end
|
44
|
-
|
45
|
+
when 'cover'
|
45
46
|
res.push("#{json_schema.cover}% #{response.status}")
|
46
|
-
|
47
|
+
when 'cover_enum'
|
47
48
|
res.push("#{json_schema.cover_enum}% #{response.status}")
|
48
|
-
|
49
|
+
when 'cover_one_of'
|
49
50
|
res.push("#{json_schema.cover_one_of}% #{response.status}")
|
50
51
|
end
|
51
52
|
end
|
@@ -48,26 +48,28 @@ module Fitting
|
|
48
48
|
|
49
49
|
def white_measurement
|
50
50
|
@white_measurement ||=
|
51
|
-
|
51
|
+
case @depth
|
52
|
+
when 'valid'
|
52
53
|
Fitting::Statistics::Measurement.new(white_unit)
|
53
|
-
|
54
|
+
when 'cover'
|
54
55
|
Fitting::Statistics::MeasurementCover.new(white_unit)
|
55
|
-
|
56
|
+
when 'cover_enum'
|
56
57
|
Fitting::Statistics::MeasurementCoverEnum.new(white_unit)
|
57
|
-
|
58
|
+
when 'cover_one_of'
|
58
59
|
Fitting::Statistics::MeasurementCoverOneOf.new(white_unit)
|
59
60
|
end
|
60
61
|
end
|
61
62
|
|
62
63
|
def black_measurement
|
63
64
|
@black_measurement ||=
|
64
|
-
|
65
|
+
case @depth
|
66
|
+
when 'valid'
|
65
67
|
Fitting::Statistics::Measurement.new(black_unit)
|
66
|
-
|
68
|
+
when 'cover'
|
67
69
|
Fitting::Statistics::MeasurementCover.new(black_unit)
|
68
|
-
|
70
|
+
when 'cover_enum'
|
69
71
|
Fitting::Statistics::MeasurementCoverEnum.new(black_unit)
|
70
|
-
|
72
|
+
when 'cover_one_of'
|
71
73
|
Fitting::Statistics::MeasurementCoverOneOf.new(black_unit)
|
72
74
|
end
|
73
75
|
end
|
@@ -17,6 +17,7 @@ module Fitting
|
|
17
17
|
return nil if @white_list == nil && @resource_white_list == nil && @include_resources == nil && @include_actions == nil
|
18
18
|
return @white_list if @white_list
|
19
19
|
return @white_list = transformation if @resource_white_list
|
20
|
+
|
20
21
|
@white_list = {}
|
21
22
|
@white_list.merge!(new_transformation) if @include_resources
|
22
23
|
@white_list.merge!(postnew_transformation) if @include_actions
|
@@ -25,6 +26,7 @@ module Fitting
|
|
25
26
|
|
26
27
|
def without_group
|
27
28
|
return @without_group_list if @without_group_list
|
29
|
+
|
28
30
|
@without_group_list = @resource_white_list.inject([]) do |all_requests, resource|
|
29
31
|
resource_selection(resource, all_requests)
|
30
32
|
end.flatten.uniq
|
@@ -43,6 +45,7 @@ module Fitting
|
|
43
45
|
|
44
46
|
def find_warnings(resource)
|
45
47
|
return nil if @resources[resource]
|
48
|
+
|
46
49
|
@warnings.push(
|
47
50
|
"FITTING WARNING: In the documentation there isn't resource from the resource_white_list #{resource}"
|
48
51
|
)
|
@@ -50,6 +53,7 @@ module Fitting
|
|
50
53
|
|
51
54
|
def puts_warnings
|
52
55
|
return nil if @warnings == []
|
56
|
+
|
53
57
|
warnings_string = @warnings.join("\n")
|
54
58
|
puts "\n#{warnings_string}"
|
55
59
|
end
|
@@ -93,6 +97,7 @@ module Fitting
|
|
93
97
|
|
94
98
|
def new_without_group
|
95
99
|
return @newwithout_group_list if @newwithout_group_list
|
100
|
+
|
96
101
|
@newwithout_group_list = @include_resources.inject([]) do |all_requests, resource|
|
97
102
|
if resource[0] == '/'
|
98
103
|
new_resource_selection(resource, all_requests)
|
@@ -120,6 +125,7 @@ module Fitting
|
|
120
125
|
|
121
126
|
def new_find_warnings(resource)
|
122
127
|
return nil if @new_resources[resource]
|
128
|
+
|
123
129
|
@warnings.push(
|
124
130
|
"FITTING WARNING: In the documentation there isn't resource from the resource_white_list #{resource}"
|
125
131
|
)
|
@@ -135,6 +141,7 @@ module Fitting
|
|
135
141
|
|
136
142
|
def postnew_without_group
|
137
143
|
return @postnewwithout_group_list if @postnewwithout_group_list
|
144
|
+
|
138
145
|
@postnewwithout_group_list = @include_actions.inject([]) do |all_requests, resource|
|
139
146
|
method, path = resource.split(' ')
|
140
147
|
if path[0] == '/'
|
@@ -27,8 +27,10 @@ module Fitting
|
|
27
27
|
all_good = requests.all?(&:valid_json_schemas?)
|
28
28
|
res += "path: #{key} #{all_good ? '✔' : '✖'}\n"
|
29
29
|
next if all_good
|
30
|
+
|
30
31
|
requests.map do |request|
|
31
32
|
next if request.valid_json_schemas?
|
33
|
+
|
32
34
|
res += " full path: #{request.test_path} ✖\n"
|
33
35
|
res += " request.method #{request.method}\n"
|
34
36
|
res += " request.path #{request.path}\n"
|
data/lib/fitting/tests.rb
CHANGED
@@ -13,7 +13,7 @@ module Fitting
|
|
13
13
|
end
|
14
14
|
json = JSON.dump(array)
|
15
15
|
|
16
|
-
File.open("fitting_tests/test#{ENV[
|
16
|
+
File.open("fitting_tests/test#{ENV['TEST_ENV_NUMBER']}.json", 'w') { |file| file.write(json) }
|
17
17
|
end
|
18
18
|
|
19
19
|
def make_dir(dir_name)
|
data/lib/fitting/version.rb
CHANGED
data/lib/fitting.rb
CHANGED
@@ -16,7 +16,6 @@ module Fitting
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def statistics
|
19
|
-
puts 'DEPRECATED: deprecated method statistics, use new method save_test_data'
|
20
19
|
responses = Fitting::Storage::Responses.new
|
21
20
|
|
22
21
|
RSpec.configure do |config|
|
@@ -30,10 +29,13 @@ module Fitting
|
|
30
29
|
end
|
31
30
|
end
|
32
31
|
|
32
|
+
extend Gem::Deprecate
|
33
|
+
deprecate :statistics, :save_test_data, 2022, 1
|
34
|
+
|
33
35
|
def save_test_data
|
34
36
|
responses = Fitting::Storage::Responses.new
|
35
37
|
|
36
|
-
FileUtils.rm_r Dir.glob(
|
38
|
+
FileUtils.rm_r Dir.glob('fitting_tests/*'), force: true
|
37
39
|
|
38
40
|
RSpec.configure do |config|
|
39
41
|
config.after(:each, type: :request) do
|
@@ -61,6 +63,7 @@ module Fitting
|
|
61
63
|
|
62
64
|
def self.load_tasks
|
63
65
|
return if loaded_tasks
|
66
|
+
|
64
67
|
self.loaded_tasks = true
|
65
68
|
|
66
69
|
Dir[File.join(File.dirname(__FILE__), 'tasks', '**/*.rake')].each do |rake|
|