beherbergung/backend/test/beherbergung/auth/jwt/defaults_test.clj

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}))))