Project

General

Profile

Download (1.62 KB) Statistics
| Branch: | Tag: | Revision:
81159d4b Greg Sutcliffe
require 'test_helper'

class TokenTest < ActiveSupport::TestCase
d6c08a7a Daniel Lobato
should validate_presence_of(:value)
should validate_presence_of(:expires)
should validate_presence_of(:host_id)
81159d4b Greg Sutcliffe
test "a host can create a token" do
8c6bc83e Marek Hulan
h = FactoryBot.create(:host)
a977bd3b Daniel Lobato
h.create_token(:value => "aaaaaa", :expires => Time.now.utc)
81159d4b Greg Sutcliffe
assert_equal Token.first.value, "aaaaaa"
assert_equal Token.first.host_id, h.id
end

test "a host can delete its token" do
8c6bc83e Marek Hulan
h = FactoryBot.create(:host)
6004f9c3 Michael Moll
h.create_token(:value => "aaaaaa", :expires => Time.now.utc + 1.minute)
81159d4b Greg Sutcliffe
assert_instance_of Token, h.token
9d43fc71 Michael Moll
h.token = nil
81159d4b Greg Sutcliffe
assert Token.where(:value => "aaaaaa", :host_id => h.id).empty?
end

test "a host cannot delete tokens for other hosts" do
8c6bc83e Marek Hulan
h1 = FactoryBot.create(:host)
h2 = FactoryBot.create(:host)
6004f9c3 Michael Moll
h1.create_token(:value => "aaaaaa", :expires => Time.now.utc + 1.minute)
h2.create_token(:value => "bbbbbb", :expires => Time.now.utc + 1.minute)
81159d4b Greg Sutcliffe
assert_equal Token.all.size, 2
9d43fc71 Michael Moll
h1.token = nil
81159d4b Greg Sutcliffe
assert_equal Token.all.size, 1
end

585f328e Greg Sutcliffe
test "not all expired tokens should be removed" do
8c6bc83e Marek Hulan
h1 = FactoryBot.create(:host)
h2 = FactoryBot.create(:host)
6004f9c3 Michael Moll
h1.create_token(:value => "aaaaaa", :expires => Time.now.utc + 1.minute)
h2.create_token(:value => "bbbbbb", :expires => Time.now.utc - 1.minute)
585f328e Greg Sutcliffe
assert_equal 2, Token.count
h1.expire_token
assert_equal 1, Token.count
81159d4b Greg Sutcliffe
end
4fed5385 Ohad Levy
3ff2bba4 Dmitri Dolguikh
test "token jail test" do
allowed = [:host, :value, :expires, :nil?]
allowed.each do |m|
assert Token::Jail.allowed?(m), "Method #{m} is not available in Token::Jail while should be allowed."
end
end
81159d4b Greg Sutcliffe
end