diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fc2419d..b8d6a08 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,6 +19,10 @@ jobs: "jwt_2.6.0", "jwt_2.7.0", "jwt_2.8.0", + "jwt_2.9.0", + "jwt_2.10.0", + "jwt_3.0.0", + "jwt_3.1.0", "rack_2.1.0", "rack_2.2.0", "rack_3.0.0", diff --git a/Appraisals b/Appraisals index 33ab6a8..8f81d1b 100644 --- a/Appraisals +++ b/Appraisals @@ -7,6 +7,10 @@ 2.6.0 2.7.0 2.8.0 + 2.9.0 + 2.10.0 + 3.0.0 + 3.1.0 ].each do |jwt_version| appraise "jwt-#{jwt_version}" do gem 'jwt', "~> #{jwt_version}" diff --git a/CHANGELOG.md b/CHANGELOG.md index 7876189..f0d78f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased +## [v4.1.0] - 2025-06-24 + +### Added + +- Added support for additional JWT versions +- Updated test matrix to include `jwt` versions: `~> 2.9.0`, `~> 2.10.0`, `~> 3.0.0` & `~> 3.1.0` +- Added test coverage for JWT version 3+ behavior + + ## [v4.0.0] - 2024-07-11 ### Changed diff --git a/gemfiles/jwt_2.10.0.gemfile b/gemfiles/jwt_2.10.0.gemfile new file mode 100644 index 0000000..d712934 --- /dev/null +++ b/gemfiles/jwt_2.10.0.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "faraday", require: false +gem "jwt", "~> 2.10.0" + +gemspec path: "../" diff --git a/gemfiles/jwt_2.9.0.gemfile b/gemfiles/jwt_2.9.0.gemfile new file mode 100644 index 0000000..9b41123 --- /dev/null +++ b/gemfiles/jwt_2.9.0.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "faraday", require: false +gem "jwt", "~> 2.9.0" + +gemspec path: "../" diff --git a/gemfiles/jwt_3.0.0.gemfile b/gemfiles/jwt_3.0.0.gemfile new file mode 100644 index 0000000..f3c0c9e --- /dev/null +++ b/gemfiles/jwt_3.0.0.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "faraday", require: false +gem "jwt", "~> 3.0.0" + +gemspec path: "../" diff --git a/gemfiles/jwt_3.1.0.gemfile b/gemfiles/jwt_3.1.0.gemfile new file mode 100644 index 0000000..be2a54f --- /dev/null +++ b/gemfiles/jwt_3.1.0.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "faraday", require: false +gem "jwt", "~> 3.1.0" + +gemspec path: "../" diff --git a/lib/jwt_signed_request/version.rb b/lib/jwt_signed_request/version.rb index 1d78ef1..8e2a47c 100644 --- a/lib/jwt_signed_request/version.rb +++ b/lib/jwt_signed_request/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module JWTSignedRequest - VERSION = '4.0.0' + VERSION = '4.1.0' end diff --git a/spec/jwt_signed_request/verify_spec.rb b/spec/jwt_signed_request/verify_spec.rb index d8982c3..9168ced 100644 --- a/spec/jwt_signed_request/verify_spec.rb +++ b/spec/jwt_signed_request/verify_spec.rb @@ -205,6 +205,16 @@ end end + context 'and using JWT version 3.x.x' do + before do + stub_const("JWT::VERSION::MAJOR", 3) + end + + it 'raises an a MissingAlgorithmError' do + expect { verify_request }.to raise_error(JWTSignedRequest::MissingAlgorithmError) + end + end + context 'and using JWT version 1.x.x' do before do stub_const("JWT::VERSION::MAJOR", 1)