From c78b97df0eb275415d6ed5ef297841ee2f61b473 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 9 May 2016 22:06:32 +0300 Subject: Added rspec for testing container registry authentication service --- spec/lib/jwt/rsa_token_spec.rb | 31 +++++++++++++++++++++++++++++++ spec/lib/jwt/token_spec.rb | 18 ++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 spec/lib/jwt/rsa_token_spec.rb create mode 100644 spec/lib/jwt/token_spec.rb (limited to 'spec/lib') diff --git a/spec/lib/jwt/rsa_token_spec.rb b/spec/lib/jwt/rsa_token_spec.rb new file mode 100644 index 00000000000..710801923e7 --- /dev/null +++ b/spec/lib/jwt/rsa_token_spec.rb @@ -0,0 +1,31 @@ +describe Jwt::RSAToken do + let(:rsa_key) { generate_key } + let(:rsa_token) { described_class.new(nil) } + let(:rsa_encoded) { rsa_token.encoded } + + before { allow_any_instance_of(described_class).to receive(:key).and_return(rsa_key) } + + context 'token' do + context 'for valid key to be validated' do + before { rsa_token['key'] = 'value' } + + subject { JWT.decode(rsa_encoded, rsa_key) } + + it { expect{subject}.to_not raise_error } + it { expect(subject.first).to include('key' => 'value') } + end + + context 'for invalid key to raise an exception' do + let(:new_key) { generate_key } + subject { JWT.decode(rsa_encoded, new_key) } + + it { expect{subject}.to raise_error(JWT::DecodeError) } + end + end + + private + + def generate_key + OpenSSL::PKey::RSA.generate(512) + end +end diff --git a/spec/lib/jwt/token_spec.rb b/spec/lib/jwt/token_spec.rb new file mode 100644 index 00000000000..a56b4cf39b5 --- /dev/null +++ b/spec/lib/jwt/token_spec.rb @@ -0,0 +1,18 @@ +describe Jwt::Token do + let(:token) { described_class.new } + + context 'custom parameters' do + let(:value) { 'value' } + before { token[:key] = value } + + it { expect(token[:key]).to eq(value) } + it { expect(token.payload).to include(key: value) } + end + + context 'embeds default payload' do + subject { token.payload } + let(:default) { token.send(:default_payload) } + + it { is_expected.to include(default) } + end +end -- cgit v1.2.1