Skip to content

Commit

Permalink
udpate specs
Browse files Browse the repository at this point in the history
  • Loading branch information
jefftmarks committed Feb 19, 2025
1 parent 323de4d commit 5850fe6
Show file tree
Hide file tree
Showing 6 changed files with 82 additions and 59 deletions.
2 changes: 1 addition & 1 deletion lib/gi/lcpe/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def v_cache
def validate_client_version
# client (and not vets-api cache) must have fresh version
config.etag = v_client
validation_response = perform(:get, 'v1/lcpe/lacs', {})
validation_response = perform(:get, "v1/lcpe/#{redis_key}", {})
case validation_response.status
when 304
config.etag = nil
Expand Down
86 changes: 45 additions & 41 deletions spec/lib/gi/lcpe/client_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
let(:client) { described_class.new(v_client:, lcpe_type:) }
let(:v_fresh) { '3' }
let(:v_stale) { '2' }
let(:enriched_id) { "1@#{v_client}" }

describe '#get_licenses_and_certs_v1' do
context 'when versioning disabled' do
Expand Down Expand Up @@ -39,49 +40,33 @@

describe '#get_license_and_cert_details_v1' do
let(:response) { instance_double(GI::GIDSResponse) }
let(:lcpe_type) { 'lacs' }

before do
allow(GI::GIDSResponse).to receive(:new).and_return(response)
allow(response).to receive(:body)
end

context 'when versioning disabled' do
let(:v_client) { nil }
let(:lcpe_type) { nil }
context 'when client version stale' do
let(:v_client) { v_stale }

it 'creates GI::GIDSReponse to be passed to GIDSRedis' do
VCR.use_cassette('gi/lcpe/get_lac_details') do
client.get_license_and_cert_details_v1({ id: '1@f9822' })
expect(GI::GIDSResponse).to have_received(:new)
expect(response).not_to have_received(:body)
it 'raises ClientCacheStaleError' do
VCR.use_cassette('gi/lcpe/get_lacs_cache_stale') do
expect { client.get_license_and_cert_details_v1({ id: enriched_id }) }
.to raise_error(LCPERedis::ClientCacheStaleError)
end
end
end

context 'when versioning enabled' do
let(:lcpe_type) { 'lacs' }

context 'when client version stale' do
let(:v_client) { v_stale }

it 'raises ClientCacheStaleError' do
VCR.use_cassette('gi/lcpe/get_lacs_cache_stale') do
expect { client.get_license_and_cert_details_v1({ id: '1@f9822', version: v_client }) }
.to raise_error(LCPERedis::ClientCacheStaleError)
end
end
end

context 'when client version fresh' do
let(:v_client) { v_fresh }
context 'when client version fresh' do
let(:v_client) { v_fresh }

it 'creates GI::GIDSReponse and calls body' do
VCR.use_cassette('gi/lcpe/get_lacs_cache_fresh') do
VCR.use_cassette('gi/lcpe/get_lac_details') do
client.get_license_and_cert_details_v1({ id: '1@f9822', version: v_client })
expect(GI::GIDSResponse).to have_received(:new)
expect(response).to have_received(:body)
end
it 'creates GI::GIDSReponse and calls body' do
VCR.use_cassette('gi/lcpe/get_lacs_cache_fresh') do
VCR.use_cassette('gi/lcpe/get_lac_details') do
client.get_license_and_cert_details_v1({ id: enriched_id })
expect(GI::GIDSResponse).to have_received(:new)
expect(response).to have_received(:body)
end
end
end
Expand Down Expand Up @@ -118,16 +103,35 @@

describe '#get_exam_details_v1' do
let(:response) { instance_double(GI::GIDSResponse) }
let(:v_client) { nil }
let(:lcpe_type) { nil }

it 'creates GI::GIDSReponse to be passed to GIDSRedis' do
VCR.use_cassette('gi/lcpe/get_exam_details') do
allow(GI::GIDSResponse).to receive(:new).and_return(response)
allow(response).to receive(:body)
client.get_exam_details_v1({ id: '1@acce9' })
expect(GI::GIDSResponse).to have_received(:new)
expect(response).not_to have_received(:body)
let(:lcpe_type) { 'exams' }

before do
allow(GI::GIDSResponse).to receive(:new).and_return(response)
allow(response).to receive(:body)
end

context 'when client version stale' do
let(:v_client) { v_stale }

it 'raises ClientCacheStaleError' do
VCR.use_cassette('gi/lcpe/get_exams_cache_stale') do
expect { client.get_exam_details_v1({ id: enriched_id }) }
.to raise_error(LCPERedis::ClientCacheStaleError)
end
end
end

context 'when client version fresh' do
let(:v_client) { v_fresh }

it 'creates GI::GIDSReponse and calls body' do
VCR.use_cassette('gi/lcpe/get_exams_cache_fresh') do
VCR.use_cassette('gi/lcpe/get_exam_details') do
client.get_exam_details_v1({ id: enriched_id })
expect(GI::GIDSResponse).to have_received(:new)
expect(response).to have_received(:body)
end
end
end
end
end
Expand Down
36 changes: 27 additions & 9 deletions spec/requests/v1/gi/lcpe/exams_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@

let(:v_fresh) { '3' }
let(:v_stale) { '2' }
let(:enriched_id) { "1@#{v_client}" }

describe 'GET v1/gi/lcpe/exams' do
let(:lcpe_type) { 'exams' }
let(:lcpe_cache) { LCPERedis.new(lcpe_type:) }
let(:service) { GI::LCPE::Client.new(version_id: v_client, lcpe_type:) }
let(:service) { GI::LCPE::Client.new(v_client:, lcpe_type:) }

context 'when filter params present' do
it 'bypasses versioning and returns lacs with 200 response' do
Expand Down Expand Up @@ -42,7 +43,7 @@
let(:v_client) { v_stale }

before do
# render cache stale
# generate stale cache
VCR.use_cassette('gi/lcpe/get_exams_cache_nil') do
service.get_exams_v1({})
body = lcpe_cache.cached_response.body.merge(version: v_stale)
Expand All @@ -64,7 +65,7 @@
let(:v_client) { v_stale }

before do
# render cache fresh
# generate fresh cache
VCR.use_cassette('gi/lcpe/get_exams_cache_nil') do
service.get_exams_v1({})
end
Expand All @@ -84,7 +85,7 @@
let(:v_client) { v_fresh }

before do
# render cache fresh
# generate fresh cache

Check failure on line 88 in spec/requests/v1/gi/lcpe/exams_spec.rb

View workflow job for this annotation

GitHub Actions / Linting and Security

Layout/CommentIndentation: Incorrect indentation detected (column 9 instead of 10).
VCR.use_cassette('gi/lcpe/get_exams_cache_nil') do
service.get_exams_v1({})
end
Expand All @@ -102,11 +103,28 @@
end

describe 'GET v1/gi/lcpe/exams/:id' do
it 'returns 200 response' do
VCR.use_cassette('gi/lcpe/get_exam_details') do
get "#{v1_gi_lcpe_exams_url}/1@acce9"
expect(response).to have_http_status(:ok)
expect(response).to match_response_schema('gi/lcpe/exam')
context 'when client requests details with stale cache' do
let(:v_client) { v_stale }

it 'returns 409 conflict' do
VCR.use_cassette('gi/lcpe/get_exams_cache_stale') do
get "#{v1_gi_lcpe_exams_url}/#{enriched_id}"
expect(response).to have_http_status(:conflict)
end
end
end

context 'when client requests details with fresh cache' do
let(:v_client) { v_fresh }

it 'returns 200 response with lac details' do
VCR.use_cassette('gi/lcpe/get_exams_cache_fresh') do
VCR.use_cassette('gi/lcpe/get_exam_details') do
get "#{v1_gi_lcpe_exams_url}/#{enriched_id}"
expect(response).to have_http_status(:ok)
expect(response).to match_response_schema('gi/lcpe/exam')
end
end
end
end
end
Expand Down
13 changes: 7 additions & 6 deletions spec/requests/v1/gi/lcpe/lacs_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@

let(:v_fresh) { '3' }
let(:v_stale) { '2' }
let(:enriched_id) { "1@#{v_client}" }

describe 'GET v1/gi/lcpe/lacs' do
let(:lcpe_type) { 'lacs' }
let(:lcpe_cache) { LCPERedis.new(lcpe_type:) }
let(:service) { GI::LCPE::Client.new(version_id: v_client, lcpe_type:) }
let(:service) { GI::LCPE::Client.new(v_client:, lcpe_type:) }

context 'when filter params present' do
it 'bypasses versioning and returns lacs with 200 response' do
Expand Down Expand Up @@ -42,7 +43,7 @@
let(:v_client) { v_stale }

before do
# render cache stale
# generate stale cache
VCR.use_cassette('gi/lcpe/get_lacs_cache_nil') do
service.get_licenses_and_certs_v1({})
body = lcpe_cache.cached_response.body.merge(version: v_stale)
Expand All @@ -64,7 +65,7 @@
let(:v_client) { v_stale }

before do
# render cache fresh
# generate fresh cache
VCR.use_cassette('gi/lcpe/get_lacs_cache_nil') do
service.get_licenses_and_certs_v1({})
end
Expand All @@ -84,7 +85,7 @@
let(:v_client) { v_fresh }

before do
# render cache fresh
# generate fresh cache
VCR.use_cassette('gi/lcpe/get_lacs_cache_nil') do
service.get_licenses_and_certs_v1({})
end
Expand All @@ -107,7 +108,7 @@

it 'returns 409 conflict' do
VCR.use_cassette('gi/lcpe/get_lacs_cache_stale') do
get "#{v1_gi_lcpe_lacs_url}/1@f9822", params: { version: v_client }
get "#{v1_gi_lcpe_lacs_url}/#{enriched_id}"
expect(response).to have_http_status(:conflict)
end
end
Expand All @@ -119,7 +120,7 @@
it 'returns 200 response with lac details' do
VCR.use_cassette('gi/lcpe/get_lacs_cache_fresh') do
VCR.use_cassette('gi/lcpe/get_lac_details') do
get "#{v1_gi_lcpe_lacs_url}/1@f9822", params: { version: v_client }
get "#{v1_gi_lcpe_lacs_url}/#{enriched_id}"
expect(response).to have_http_status(:ok)
expect(response).to match_response_schema('gi/lcpe/lac')
end
Expand Down
2 changes: 1 addition & 1 deletion spec/support/vcr_cassettes/gi/lcpe/get_exam_details.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion spec/support/vcr_cassettes/gi/lcpe/get_lac_details.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 5850fe6

Please sign in to comment.