api_mini_tester 0.1.9 → 0.1.10

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
2
  SHA1:
3
- metadata.gz: 6e25a821823b34ec31d6415b034a1d1abbf6d0fa
4
- data.tar.gz: 56c5ded54e8eb4f4f5741fbe7068697668f4b8a6
3
+ metadata.gz: 196ad0dea6ff200410f0e1881dd09e198fae07c1
4
+ data.tar.gz: 02d4e985fd2f34a98f897f28e93bc4a02c144c77
5
5
  SHA512:
6
- metadata.gz: cdc8c543be0449543b3678ab4ba2486f675625427b94a456d5697ef73623f14032f75ab4511a3c250bab22535fba31011f2b5b8b667a66df22d08377d8671740
7
- data.tar.gz: 1522724e3cba1ac9a7e1bcd24aa4e336b05aee210a6f6c7f784e34a26d1966c0aa8cec3e44d27ab8f0c0d327b8a3e61ddd789de66c280c730f18c59372cdaa7c
6
+ metadata.gz: aeede353a79455c34eb45f360110558468c72fc7d02f57edcda36c428140e19687edadc29a8631db1b173ab51c72b296a3b9535b229acd4e93ebd4bd0bab6e37
7
+ data.tar.gz: 9942784c5710188d6484aae233bf87736cb78c3cd1629840e36d2b983e2bbe9ddd79c52a501050b367f7233cd3713a1f56b21c083fe50f7a4a1c2d2f26490520
@@ -12,7 +12,7 @@ module ApiMiniTester
12
12
 
13
13
  def to_yaml
14
14
  suite = suite_base
15
- suite['tests'][0]['steps'] = steps
15
+ suite['tests'][0]['steps'] = steps(collection['item'])
16
16
  suite.to_yaml
17
17
  end
18
18
 
@@ -21,7 +21,7 @@ module ApiMiniTester
21
21
  'name' => name,
22
22
  'desc' => "Imported from postman collection: #{name}",
23
23
  'settings' => {
24
- 'baseurl' => baseurl
24
+ 'baseurl' => baseurl(collection['item'])
25
25
  },
26
26
  'tests' => [
27
27
  {
@@ -36,26 +36,35 @@ module ApiMiniTester
36
36
  collection['info']['name']
37
37
  end
38
38
 
39
- def baseurl
40
- @base ||= begin
41
- base = collection['item'][0]['request']['url']['raw']
42
- collection['item'].each do |item|
39
+ def max_common_url(url1, url2)
40
+ return "" unless url1 && url2
41
+ index = 0
42
+ index += 1 while url1[index] && url2[index] && url1[index] == url2[index]
43
+ return "" if index == 0
44
+ url1[0..(index - 1)][0..(url1.rindex('/') - 1)]
45
+ end
46
+
47
+ def baseurl(items)
48
+ base = ''
49
+ items.each do |item|
50
+ if item['item']
51
+ item_url = baseurl(item['item'])
52
+ elsif item['request']
43
53
  item_url = item['request']['url']['raw']
44
- index = 0
45
- index += 1 while base[index] && item_url[index] && base[index] == item_url[index]
46
- base = base[0..(index - 1)][0..(base.rindex('/') - 1)]
47
54
  end
48
- base
55
+ base = max_common_url(base, item_url)
49
56
  end
50
- @base
57
+ base
51
58
  end
52
59
 
53
- def steps
60
+ def steps(items)
54
61
  res = []
55
- index = 0
56
- collection['item'].each do |item|
57
- res << step(item, index)
58
- index += 1
62
+ items.each do |item|
63
+ if item['item']
64
+ res << steps(item['item'])
65
+ elsif item['request']
66
+ res << step(item)
67
+ end
59
68
  end
60
69
  res
61
70
  end
@@ -73,12 +82,16 @@ module ApiMiniTester
73
82
  end
74
83
 
75
84
  def step_body(body)
76
- body ? JSON.parse(body) : {}
85
+ begin
86
+ body ? JSON.parse(body) : {}
87
+ rescue JSON::ParserError
88
+ {}
89
+ end
77
90
  end
78
91
 
79
- def step(item, index)
92
+ def step(item)
80
93
  res = {
81
- 'step' => index,
94
+ 'step' => item['name'],
82
95
  'name' => item['name'],
83
96
  'method' => item['request']['method'],
84
97
  'uri' => step_uri(item['request']['url']['raw']),
@@ -0,0 +1,69 @@
1
+ require 'json'
2
+ require 'yaml'
3
+
4
+ module ApiMiniTester
5
+ module Import
6
+ class Swagger
7
+ attr_reader :collection
8
+
9
+ def initialize(swagger)
10
+
11
+ end
12
+
13
+ def to_yaml
14
+ end
15
+
16
+ def suite_base
17
+ @suite_base ||= {
18
+ 'name' => name,
19
+ 'desc' => "Imported from swagger definition: #{name}",
20
+ 'settings' => {
21
+ 'baseurl' => ''
22
+ },
23
+ 'tests' => [
24
+ {
25
+ 'name' => "Test scenario based on swagger definition #{name}",
26
+ 'steps' => []
27
+ }
28
+ ]
29
+ }
30
+ end
31
+
32
+ def name
33
+ end
34
+
35
+ def baseurl
36
+ end
37
+
38
+ def steps
39
+ end
40
+
41
+ def step_uri(uri)
42
+ end
43
+
44
+ def step_header(header)
45
+ end
46
+
47
+ def step_body(body)
48
+ end
49
+
50
+ def step(item)
51
+ res = {
52
+ 'step' => '',
53
+ 'name' => ''
54
+ 'method' => ''
55
+ 'uri' => '',
56
+ 'input' => {
57
+ 'header' => {},
58
+ 'body' => {}
59
+ },
60
+ 'output' => {
61
+ 'header' => {},
62
+ 'body' => {}
63
+ }
64
+ }
65
+ res
66
+ end
67
+ end
68
+ end
69
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_mini_tester
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jindrich Skupa (@eMan)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-18 00:00:00.000000000 Z
11
+ date: 2018-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder
@@ -285,6 +285,7 @@ files:
285
285
  - lib/api_mini_tester.rb
286
286
  - lib/api_mini_tester/import.rb
287
287
  - lib/api_mini_tester/import/postman.rb
288
+ - lib/api_mini_tester/import/swagger.rb
288
289
  - lib/api_mini_tester/test_faker_filter.rb
289
290
  - lib/api_mini_tester/test_formatter.rb
290
291
  - lib/api_mini_tester/test_scenario.rb