api_pi 0.9 → 0.9.3

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
  SHA256:
3
- metadata.gz: 590ba41eee563126e54dbd3e6381ef5de82cf19ca7f64c7c8c7bcaf569fe6692
4
- data.tar.gz: 8a40403e38f2e3691508a0eb8e5cb0b8380f8676fdb13bc16872faa1fd1d6175
3
+ metadata.gz: ffac63a3f0f7ce1538044fa5336546effe59dc64b0a16a528761c80a740123c0
4
+ data.tar.gz: 146038c0ac9dd68fef685101c02370ab251cb7d77e3b2ab30af0a8013ba4a14d
5
5
  SHA512:
6
- metadata.gz: 913b42c2cf80243ebe5a36af4208f5bcf2f25f0fb1525dc3eb84070203efec1283b227bf0479bea2489440b5d64158670e89f746f2b32305ee1f6c53e6437b97
7
- data.tar.gz: 5c642f942401b018e98ac68f54a9de30be6bcc4a5b7f4973ec6b582e1be1d6a83c50d77042c8247903538c2ad571bd6089d682254906e012a04ad06a2aaa5b1e
6
+ metadata.gz: cc1440f2f95e199ac892dcd5a1ccfac5075fccdbb0043dcdccb982bb183ace03dcde7c515d0a79cea21aad942405f0982cf07faecd50173c603172c01cf36c1b
7
+ data.tar.gz: 1b733e4953891974bcff398e7c7bb7b0d7346f64beb91f42861a5fa245a9893033f01c3db6386ecdbf54dc955a88883495a8f0a26d0c35d21864ea6be97e62d9
@@ -0,0 +1,38 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Tests
9
+
10
+ on:
11
+ push:
12
+ branches: [ "main" ]
13
+ pull_request:
14
+ branches: [ "main" ]
15
+
16
+ permissions:
17
+ contents: read
18
+
19
+ jobs:
20
+ test:
21
+
22
+ runs-on: ubuntu-latest
23
+ strategy:
24
+ matrix:
25
+ ruby-version: ['3.0']
26
+
27
+ steps:
28
+ - uses: actions/checkout@v4
29
+ - name: Set up Ruby
30
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
31
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
32
+ # uses: ruby/setup-ruby@v1
33
+ uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
34
+ with:
35
+ ruby-version: ${{ matrix.ruby-version }}
36
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
37
+ - name: Run tests
38
+ run: bundle exec rake
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  .bundle/
2
2
  *.gem
3
+ vendor/
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.5
1
+ 3.3.4
data/Gemfile.lock CHANGED
@@ -1,35 +1,40 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- api_pi (0.2.6)
4
+ api_pi (0.9.3)
5
5
  map (~> 6.6)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- addressable (2.7.0)
11
- public_suffix (>= 2.0.2, < 5.0)
12
- crack (0.4.3)
13
- safe_yaml (~> 1.0.0)
14
- hashdiff (1.0.0)
10
+ addressable (2.8.7)
11
+ public_suffix (>= 2.0.2, < 7.0)
12
+ bigdecimal (3.1.8)
13
+ crack (1.0.0)
14
+ bigdecimal
15
+ rexml
16
+ hashdiff (1.1.0)
15
17
  map (6.6.0)
16
- minitest (5.8.5)
17
- public_suffix (4.0.1)
18
- rake (13.0.0)
19
- safe_yaml (1.0.5)
20
- webmock (3.7.6)
21
- addressable (>= 2.3.6)
18
+ minitest (5.24.1)
19
+ public_suffix (6.0.0)
20
+ rake (13.2.1)
21
+ rexml (3.3.1)
22
+ strscan
23
+ strscan (3.1.0)
24
+ webmock (3.23.1)
25
+ addressable (>= 2.8.0)
22
26
  crack (>= 0.3.2)
23
27
  hashdiff (>= 0.4.0, < 2.0.0)
24
28
 
25
29
  PLATFORMS
26
30
  ruby
31
+ x86_64-darwin-21
27
32
 
28
33
  DEPENDENCIES
29
34
  api_pi!
30
- minitest (~> 5.8.4)
31
- rake (~> 13.0.0)
32
- webmock (~> 3.7.6)
35
+ minitest (~> 5.24.1)
36
+ rake (~> 13.2.1)
37
+ webmock (~> 3.23.1)
33
38
 
34
39
  BUNDLED WITH
35
- 1.17.2
40
+ 2.5.15
data/README.md CHANGED
@@ -1,10 +1,9 @@
1
1
  # API P.I.
2
+ ![API P.I.](https://raw.githubusercontent.com/benwoody/api_pi/main/logo/pi-logo.jpg)
2
3
 
3
- [![Build Status](https://travis-ci.org/benwoody/api_pi.svg)](https://travis-ci.org/benwoody/api_pi)
4
-
5
- A ruby DSL to test JSON contracts.
6
-
7
- An example test can be found in the example/ directory.
4
+ A ruby DSL to investigate and test JSON contracts.
5
+ ----------
6
+ [![Tests](https://github.com/benwoody/api_pi/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/benwoody/api_pi/actions/workflows/tests.yml)
8
7
 
9
8
  ## Install
10
9
 
@@ -212,4 +211,3 @@ To-Do
212
211
  -----
213
212
 
214
213
  * Ability to basic_auth before GET request
215
-
data/api_pi.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |g|
7
7
  g.version = ApiPi::VERSION
8
8
 
9
9
  g.summary = "API validation DSL"
10
- g.description = "A ruby DSL to validate API requests."
10
+ g.description = "A ruby DSL to investigate and validate API requests."
11
11
 
12
12
  g.authors = "Ben Woodall"
13
13
  g.email = "mail@benwoodall.com"
@@ -16,10 +16,10 @@ Gem::Specification.new do |g|
16
16
  g.test_files = `git ls-files -- test/*`.split("\n")
17
17
 
18
18
  g.extra_rdoc_files = ["README.md"]
19
- g.required_ruby_version = '>= 2.0.0'
19
+ g.required_ruby_version = '>= 3.0'
20
20
 
21
21
  g.add_dependency 'map', '~> 6.6'
22
- g.add_development_dependency 'minitest', '~>5.8.4'
23
- g.add_development_dependency 'webmock', '~> 3.7.6'
24
- g.add_development_dependency 'rake', '~> 13.0.0'
22
+ g.add_development_dependency 'minitest', '~>5.24.1'
23
+ g.add_development_dependency 'webmock', '~> 3.23.1'
24
+ g.add_development_dependency 'rake', '~> 13.2.1'
25
25
  end
data/example/example.rb CHANGED
@@ -6,6 +6,21 @@ get "https://raw.githubusercontent.com/benwoody/api_pi/master/example/example.js
6
6
 
7
7
  test "headers" do
8
8
  response.code.is 200
9
+ response.header.has_key "contenttype"
10
+ end
11
+
12
+ test "metadata" do
13
+ response.body.results.is_a Hash
14
+ response.body.metadata.has_keys "totalCount", "totalPageCount"
15
+ response.body.metadata.totalCount.is_a Integer
16
+ response.body.metadata.totalPageCount.is_a Integer
17
+ end
18
+
19
+ test "results" do
20
+ response.body.results.is_a Hash
21
+ response.body.results.has_key "string"
22
+ response.body.results.lacks_key "nope"
23
+ response.body.results.has_keys "string", "int", "here", "array"
9
24
  end
10
25
 
11
26
  test "results.string" do
@@ -17,13 +32,8 @@ get "https://raw.githubusercontent.com/benwoody/api_pi/master/example/example.js
17
32
  response.body.results.int.is_an Integer
18
33
  end
19
34
 
20
- test "results" do
21
- response.body.results.has_key "string"
22
- response.body.results.lacks_key "nope"
23
- response.body.results.has_keys "string","int","here","array"
24
- end
25
-
26
35
  test "results.array" do
36
+ response.body.results.array.is_an Array
27
37
  response.body.results.array.includes 3
28
38
  end
29
39
  end
data/lib/api_pi/dsl.rb CHANGED
@@ -16,19 +16,19 @@ module ApiPi
16
16
  pi.investigate
17
17
  end
18
18
 
19
- # Test blocks are used to group similar assertions into readable units.
20
- #
19
+ # Test blocks are used to group similar assertions into readable units.
20
+ #
21
21
  # For example, you may want to put your header tests into one test block:
22
- #
22
+ #
23
23
  # get 'example.com/user.json' do
24
24
  # test 'Headers have correct data' do
25
25
  # # You header assertions...
26
26
  # end
27
27
  # end
28
- #
28
+ #
29
29
  # Inside of the test block, you would then put your header assertions.
30
- # onceyou run your tests, your test blocks are grouped together and
31
- # pass/fail based on assertions in the test block.
30
+ # onceyou run your tests, your test blocks are grouped together and
31
+ # pass/fail based on assertions in the test block.
32
32
 
33
33
  def test desc, &block
34
34
  @tests[desc] = block
@@ -1,3 +1,3 @@
1
1
  module ApiPi
2
- VERSION = '0.9'
2
+ VERSION = '0.9.3'
3
3
  end
data/logo/pi-logo.jpg ADDED
Binary file
@@ -95,7 +95,7 @@ module ApiPi
95
95
 
96
96
  def test_stripped?
97
97
  assert "stripped".stripped?
98
- assert_raises(ApiPi::AssertionError) { " not_stripped ". stripped? }
98
+ assert_raises(ApiPi::AssertionError) { " not_stripped ".stripped? }
99
99
  end
100
100
  end
101
101
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_pi
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.9'
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Woodall
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-31 00:00:00.000000000 Z
11
+ date: 2024-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: map
@@ -30,52 +30,52 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 5.8.4
33
+ version: 5.24.1
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 5.8.4
40
+ version: 5.24.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: webmock
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.7.6
47
+ version: 3.23.1
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.7.6
54
+ version: 3.23.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 13.0.0
61
+ version: 13.2.1
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 13.0.0
69
- description: A ruby DSL to validate API requests.
68
+ version: 13.2.1
69
+ description: A ruby DSL to investigate and validate API requests.
70
70
  email: mail@benwoodall.com
71
71
  executables: []
72
72
  extensions: []
73
73
  extra_rdoc_files:
74
74
  - README.md
75
75
  files:
76
+ - ".github/workflows/tests.yml"
76
77
  - ".gitignore"
77
78
  - ".ruby-version"
78
- - ".travis.yml"
79
79
  - Gemfile
80
80
  - Gemfile.lock
81
81
  - README.md
@@ -89,14 +89,15 @@ files:
89
89
  - lib/api_pi/dsl.rb
90
90
  - lib/api_pi/request.rb
91
91
  - lib/api_pi/version.rb
92
+ - logo/pi-logo.jpg
92
93
  - test/test_helper.rb
93
94
  - test/unit/test_assertions.rb
94
95
  - test/unit/test_dsl.rb
95
96
  - test/unit/test_requests.rb
96
- homepage:
97
+ homepage:
97
98
  licenses: []
98
99
  metadata: {}
99
- post_install_message:
100
+ post_install_message:
100
101
  rdoc_options: []
101
102
  require_paths:
102
103
  - lib
@@ -104,15 +105,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
105
  requirements:
105
106
  - - ">="
106
107
  - !ruby/object:Gem::Version
107
- version: 2.0.0
108
+ version: '3.0'
108
109
  required_rubygems_version: !ruby/object:Gem::Requirement
109
110
  requirements:
110
111
  - - ">="
111
112
  - !ruby/object:Gem::Version
112
113
  version: '0'
113
114
  requirements: []
114
- rubygems_version: 3.0.3
115
- signing_key:
115
+ rubygems_version: 3.5.11
116
+ signing_key:
116
117
  specification_version: 4
117
118
  summary: API validation DSL
118
119
  test_files:
data/.travis.yml DELETED
@@ -1,14 +0,0 @@
1
- ---
2
- language: ruby
3
-
4
- rvm:
5
- - 2.3.0
6
- - 2.4
7
- - 2.5
8
- - 2.6
9
-
10
- bundler_args: --jobs=2
11
- script:
12
- - bundle exec rake
13
-
14
- cache: bundler