# frozen_string_literal: true
RSpec.describe MagentaSSO::Request do
it "signs a request" do
request = MagentaSSO::Request.new(
"test",
MagentaSSO::TEST_SECRET,
123_456,
["profile"],
"https://example.com/sso"
)
_, signature = request.sign
expect(signature).to eq "QrPlvDbAZk0aH46Wl2qbGWpBL1EqU8H6QTgemxdR-kM"
end
it "verifies a signed request" do
payload =
"eyJjbGllbnRfaWQiOiJ0ZXN0Iiwibm9uY2UiOjEyMzQ1Niwic2NvcGVzIjpbInByb" \
"2ZpbGUiXSwiY2FsbGJhY2tfdXJsIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9zc28ifQ"
signature = "QrPlvDbAZk0aH46Wl2qbGWpBL1EqU8H6QTgemxdR-kM"
request = MagentaSSO::Request.verify(
payload,
signature,
MagentaSSO::TEST_SECRET
)
expect(request.scopes).to eq(["profile"])
expect(request.nonce).to eq 123_456
end
end