(ns emptyhead.test.idea.property (:require [cljs.test :as t :include-macros true] [emptyhead.idea.crud :as crud] [emptyhead.idea.property :as prop] [emptyhead.test.fixtures :as fx])) (t/use-fixtures :once fx/temporary-state) (t/use-fixtures :each fx/pre-reset) (t/deftest properties (t/testing "Property addition and removal" (let [idea (crud/have-idea!)] (prop/register-property! idea [:a :b :c] [:a :d :e]) (t/is (= #{[:a :b :c] [:a :d :e] [:a] [:a :b] [:a :d]} (prop/properties idea))) (t/is (prop/has-property? idea [:a :b])) (t/is (not (prop/has-property? idea [:invalid]))) (t/is (contains? (prop/with-property [:a :d]) idea)) (t/is (not (contains? (prop/with-property [:invalid]) idea))) (prop/remove-property! idea [:a :b]) (t/is (not (prop/has-property? idea [:a :b :c]))))))