(ns auto-ap.auth.logout-test (:require [auto-ap.integration.util :refer [wrap-setup]] [auto-ap.ssr.auth :as ssr-auth] [clojure.test :refer [deftest is testing use-fixtures]])) (use-fixtures :each wrap-setup) (deftest test-logout (testing "Behavior 2.1: It should clear the session when the user navigates to /logout" (let [response (ssr-auth/logout {:session {:identity {:user/role "admin"} :version 2}})] (is (= {} (:session response))))) (testing "Behavior 2.2: It should redirect to the login page after logout" (let [response (ssr-auth/logout {})] (is (= 301 (:status response))) (is (= "/login" (get-in response [:headers "Location"]))))) (testing "Behavior 2.3: It should remain idempotent when logging out without an active session" (let [response (ssr-auth/logout {})] (is (= 301 (:status response))) (is (= "/login" (get-in response [:headers "Location"]))) (is (= {} (:session response))))))