# frozen_string_literal: true

RSpec.describe SecureSession do
  it "operates correctly" do
    s = SecureSession.new("abc")

    s["hello"] = "world"
    s["foo"] = "bar"
    expect(s["hello"]).to eq("world")
    expect(s["foo"]).to eq("bar")

    s["hello"] = nil
    expect(s["hello"]).to eq(nil)
  end

  it "can override expiry" do
    s = SecureSession.new("abc")
    key = SecureRandom.hex

    s.set(key, "test2", expires: 5.minutes)
    expect(s.ttl(key)).to be_within(1.second).of(5.minutes)

    key = SecureRandom.hex
    s.set(key, "test2")
    expect(s.ttl(key)).to be_within(1.second).of(SecureSession.expiry)
  end
end