# 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
