frankfurter/spec/peg_spec.rb

42 lines
876 B
Ruby
Raw Permalink Normal View History

2026-05-21 01:38:14 -06:00
# frozen_string_literal: true
require_relative "helper"
require "peg"
describe Peg do
it "loads all pegs" do
_(Peg.all).wont_be_empty
end
it "returns frozen array" do
_(Peg.all).must_be(:frozen?)
end
it "has correct attributes" do
bmd = Peg.all.find { |p| p.quote == "BMD" }
_(bmd.base).must_equal("USD")
_(bmd.rate).must_equal(1.0)
_(bmd.since).must_equal(Date.new(1972, 2, 6))
_(bmd.authority).must_equal("Bermuda Monetary Authority")
_(bmd.source).must_include("wikipedia")
end
it "finds peg by quote currency" do
peg = Peg.find("BMD")
_(peg).wont_be_nil
_(peg.base).must_equal("USD")
end
it "returns nil for non-pegged currency" do
_(Peg.find("EUR")).must_be_nil
end
it "includes non-1:1 peg rate" do
ang = Peg.all.find { |p| p.quote == "ANG" }
_(ang.rate).must_equal(1.79)
end
end