25 lines
987 B
Clojure
25 lines
987 B
Clojure
(ns beherbergung.auth.jwt.defaults-test
|
|
(:require [clojure.test :refer [use-fixtures deftest is]]
|
|
[mount.core :as mount]
|
|
[beherbergung.auth.jwt.defaults :refer [sign unsign default_validity:seconds]]
|
|
[beherbergung.auth.jwt.state :refer [secret]]
|
|
[buddy.sign.jwt]
|
|
[buddy.sign.util :refer [now]]))
|
|
|
|
(use-fixtures :once (fn [testcases] (mount/stop) (mount/start) (testcases) (mount/stop)))
|
|
|
|
(deftest sign+unsign_ok
|
|
(let [jwt (sign {:userid 42})]
|
|
(is (= 42 (:userid (unsign jwt))))))
|
|
|
|
(deftest sign+unsign_expired
|
|
(let [jwt (sign {:userid 42})]
|
|
(is (thrown-with-msg? clojure.lang.ExceptionInfo #"Token is expired"
|
|
(buddy.sign.jwt/unsign jwt secret {:now (+ (now) default_validity:seconds)})))))
|
|
|
|
(deftest sign_too_short_secret
|
|
(mount/start-with {#'secret "insecure"})
|
|
(is (thrown-with-msg? java.lang.Exception #"Secret too short"
|
|
(sign {:userid 42}))))
|
|
|