api_mini_tester 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
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