Sha256: 14fdaad91f05458d1cdab13a5e49e6aa0bcba7f492a3cc461085d79f95c4a404
Contents?: true
Size: 957 Bytes
Versions: 1
Compression:
Stored size: 957 Bytes
Contents
# frozen_string_literal: true require "canvas/embed" RSpec.describe Canvas::Embed do it "has a version number" do expect(Canvas::Embed::VERSION).not_to be nil end it "generates valid encrypted token" do key = RbNaCl::Random.random_bytes(RbNaCl::SecretBox.key_bytes) unpacked_key = "emk_ZRzQbE9d." + key.unpack('H*').first original_message = { "team" => "canvas"}; token = Canvas::Embed::generate_token(unpacked_key, original_message) expect(token).not_to be nil decoded = JSON.parse(Base64.decode64(token)) expect(decoded['keyId']).to eq('emk_ZRzQbE9d') message_hex = decoded['message'] nonce_hex = decoded['nonce'] nonce = [nonce_hex].pack('H*') message = [message_hex].pack('H*') secret_box = RbNaCl::SecretBox.new(key) decrypted_message = secret_box.decrypt(nonce, message) context = JSON.parse(decrypted_message) expect(context["scopes"]["team"]).to eq("canvas") end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
canvas-embed-0.1.4 | spec/canvas/embed_spec.rb |