Skip to content

Commit

Permalink
FIX Securestore bug and FINISH Rspec tests
Browse files Browse the repository at this point in the history
  • Loading branch information
lecid committed Apr 17, 2024
1 parent e8f5b92 commit 9ba5680
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 9 deletions.
2 changes: 1 addition & 1 deletion lib/carioca/services/securestore.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def decrypt
encoded = File.read(@storefile)
encrypted = Base64.decode64(encoded)
plain = decipher.update(encrypted) + decipher.final
YAML.safe_load(plain)
YAML.load(plain)
end

def encrypt(data)
Expand Down
15 changes: 7 additions & 8 deletions samples/test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -152,18 +152,17 @@ def test3
sanitycheck.run

puts "\nTest 14 : Service SecureStore init or access"
puts 'skipped'
# securestore = Carioca::Registry.get.get_service name: :securestore
securestore = Carioca::Registry.get.get_service name: :securestore

puts "\nTest 15 : Service SecureStore getting previous data"
# res = (securestore.data.empty?)? "first time" : securestore.data.to_s
# output.info res
puts 'skipped'
res = (securestore.data.empty?)? "first time" : securestore.data.to_s
output.info res


puts "\nTest 16 : Service SecureStore setting new data"
# securestore.data[:time] = Time.now
# securestore.save!
puts 'skipped'
securestore.data[:time] = Time.now.to_s
securestore.save!


puts "\nTest 17 : Service finisher : test all cases"
output.item 'flat api return, no-json, no-structured'
Expand Down
62 changes: 62 additions & 0 deletions spec/carioca_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -173,5 +173,67 @@
end unless ENV["GITHUB_ACTIONS"]
end

context "SecureStore Service" do
it "must be possible to use Service SecureStore init or access and store data in" do
securestore = Carioca::Registry.get.get_service name: :securestore
res = (securestore.data.empty?)? {:time => "first time"} : securestore.data
expect(res[:time]).to be_an_instance_of String
end


it "must be possible to use Service SecureStore for setting new data" do
securestore = Carioca::Registry.get.get_service name: :securestore
securestore.data[:time] = Time.now.to_s
securestore.save!
end
end

context "Finisher Service" do

it "must be possible to use Service finisher for flat api return, no-json, no-structured" do
finisher = Carioca::Registry.get.get_service name: :finisher
result = finisher.secure_api_return(return_case: :status_ok, structured: false, json: false) do
'test'
end
expect(result).to eq "test"
end

it "must be possible to use Service finisher for api return, no-json, no-structured but with secure_raise" do
finisher = Carioca::Registry.get.get_service name: :finisher
result = finisher.secure_api_return(return_case: :status_ok, structured: false, json: false) do
finisher.secure_raise message: 'error !', error_case: :status_ko
'test'
end
expect(result).to eq({:code=>500, :message=>"Status KO", :more=>"error !"})
end

it "must be possible to use Service finisher for api return, json, structured but with secure_raise" do
finisher = Carioca::Registry.get.get_service name: :finisher
result = finisher.secure_api_return(return_case: :status_ok, structured: true, json: true) do
finisher.secure_raise message: 'error !', error_case: :status_ko
'test'
end
expect(result[:status]).to eq 500
expect(JSON.parse(result[:data], symbolize_names: true)).to eq({:code=>500, :message=>"Status KO", :more=>"error !"})

end

it "must be possible to use Service finisher for api return, json, structured" do
finisher = Carioca::Registry.get.get_service name: :finisher
result = finisher.secure_api_return(return_case: :status_ok, structured: true, json: true) do
'test'
end
expect(result[:status]).to eq 200
expect(JSON.parse(result[:data], symbolize_names: true)).to eq({:code=>200, :message=>"Status OK", :data=>"test"})
end

it "must be possible to use Service finisher for api return, json, structured with status=false" do
finisher = Carioca::Registry.get.get_service name: :finisher
result = finisher.secure_api_return(return_case: :status_ok, structured: true, json: true, status: false) do
'test'
end
expect(JSON.parse(result, symbolize_names: true)).to eq({:code=>200, :message=>"Status OK", :data=>"test"})
end
end

end

0 comments on commit 9ba5680

Please sign in to comment.