mirror of
https://github.com/penpot/penpot.git
synced 2026-08-26 14:48:43 +00:00
29 lines
1.1 KiB
Clojure
29 lines
1.1 KiB
Clojure
;; This Source Code Form is subject to the terms of the Mozilla Public
|
|
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
;;
|
|
;; Copyright (c) KALEIDOS SUBSIDIARY SL
|
|
|
|
(ns frontend-tests.plugins.local-storage-test
|
|
(:require
|
|
[app.plugins.local-storage :as storage]
|
|
[app.plugins.register :as r]
|
|
[cljs.test :as t :include-macros true]))
|
|
|
|
(t/deftest remove-item-removes-the-prefixed-key
|
|
(let [data (atom {})
|
|
fake #js {}
|
|
plugin-id "plugin-a"]
|
|
(set! (.-getItem fake) (fn [key] (get @data key)))
|
|
(set! (.-setItem fake) (fn [key value] (swap! data assoc key value)))
|
|
(set! (.-removeItem fake) (fn [key] (swap! data dissoc key)))
|
|
(set! (.-keys fake) (fn [] (to-array (keys @data))))
|
|
(with-redefs [r/check-permission (constantly true)
|
|
storage/local-storage fake]
|
|
(let [proxy (storage/local-storage-proxy plugin-id)]
|
|
(.setItem proxy "key" "value")
|
|
(t/is (= "value" (.getItem proxy "key")))
|
|
(.removeItem proxy "key")
|
|
(t/is (nil? (.getItem proxy "key")))
|
|
(t/is (empty? @data))))))
|