Pulled ui-context from tabs_spec and user-configuration-spec

This commit is contained in:
Robert C. Martin 2023-01-29 10:00:29 -06:00
parent 530ef1ace7
commit 61e5709cf0
3 changed files with 36 additions and 57 deletions

View File

@ -31,20 +31,20 @@
(set-mem :tabs-list [{:name "old-name"} {:name "some-name"}]) (set-mem :tabs-list [{:name "old-name"} {:name "some-name"}])
(change-tabs-list-name "old-name" "new-name") (change-tabs-list-name "old-name" "new-name")
(should= [{:name "new-name"} {:name "some-name"}] (should= [{:name "new-name"} {:name "some-name"}]
(:tabs-list @(:event-context @ui-context)))) (get-mem :tabs-list)))
(it "changes does not change tabs-list name if it does not exist" (it "changes does not change tabs-list name if it does not exist"
(set-mem :tabs-list [{:name "old-name"} {:name "some-name"}]) (set-mem :tabs-list [{:name "old-name"} {:name "some-name"}])
(change-tabs-list-name "bad-name" "new-name") (change-tabs-list-name "bad-name" "new-name")
(should= [{:name "old-name"} {:name "some-name"}] (should= [{:name "old-name"} {:name "some-name"}]
(:tabs-list @(:event-context @ui-context))))) (get-mem :tabs-list))))
(context "delete-tab-from-tabs-list" (context "delete-tab-from-tabs-list"
(it "deletes an existing tab" (it "deletes an existing tab"
(set-mem :tabs-list [{:name "old-name"} {:name "some-name"}]) (set-mem :tabs-list [{:name "old-name"} {:name "some-name"}])
(delete-tab-from-tabs-list "old-name") (delete-tab-from-tabs-list "old-name")
(should= [{:name "some-name"}] (should= [{:name "some-name"}]
(:tabs-list @(:event-context @ui-context))))) (get-mem :tabs-list))))
(context "add-tab-to-tabs-list" (context "add-tab-to-tabs-list"
(it "adds-a-tab" (it "adds-a-tab"
@ -52,7 +52,7 @@
(add-tab-to-tabs-list "new-name") (add-tab-to-tabs-list "new-name")
(should= [{:name "some-name"} (should= [{:name "some-name"}
{:name "new-name" :selected [] :blocked []}] {:name "new-name" :selected [] :blocked []}]
(:tabs-list @(:event-context @ui-context)))) (get-mem :tabs-list)))
) )
(context "select-id-in-tab" (context "select-id-in-tab"
@ -61,5 +61,5 @@
(add-id-to-tab "tab" :selected 1) (add-id-to-tab "tab" :selected 1)
(should= [{:name "tab" :selected [1]} (should= [{:name "tab" :selected [1]}
{:name "another"}] {:name "another"}]
(:tabs-list @(:event-context @ui-context))))) (get-mem :tabs-list))))
) )

View File

@ -3,10 +3,12 @@
[more-speech.user-configuration :refer :all] [more-speech.user-configuration :refer :all]
[more-speech.ui.swing.ui-context :refer :all])) [more-speech.ui.swing.ui-context :refer :all]))
(declare lte)
(describe "user configuration" (describe "user configuration"
(with-stubs) (with-stubs)
(context "basic functions" (context "basic functions"
(before (reset! ui-context {:event-context (atom {})})) (before (clear-mem))
(it "sets and gets a config" (it "sets and gets a config"
(set-config :test "test") (set-config :test "test")
(should= "test" (get-config :test))) (should= "test" (get-config :test)))
@ -17,6 +19,7 @@
) )
(context "export user profile" (context "export user profile"
(with lte (* 2 86400))
(it "creates if empty" (it "creates if empty"
(let [uc (validate {})] (let [uc (validate {})]
(should (contains? uc :export-user-profile)) (should (contains? uc :export-user-profile))
@ -25,47 +28,32 @@
(it "decides if it is time to export" (it "decides if it is time to export"
(with-redefs [keys-last-modified (fn [] 0)] (with-redefs [keys-last-modified (fn [] 0)]
(let [lte (* 2 86400) (set-config [:export-user-profile :export-after-days] 10)
uc {:export-user-profile {:export-after-days 10 (set-config [:export-user-profile :last-time-exported] @lte)
:last-time-exported lte}} (should (should-export-profile? (* 12 86400)))
event-context (atom {:user-configuration uc})] (should (should-export-profile? (* 13 86400)))
(reset! ui-context {:event-context event-context}) (should-not (should-export-profile? (* 11 86400)))))
(should (should-export-profile? (* 12 86400)))
(should (should-export-profile? (* 13 86400)))
(should-not (should-export-profile? (* 11 86400))))))
(it "will export if keys file has changed" (it "will export if keys file has changed"
(with-redefs [keys-last-modified (fn [] (* 3 86400))] (with-redefs [keys-last-modified (fn [] (* 3 86400))]
(let [lte (* 2 86400) (set-config [:export-user-profile :export-after-days] 10)
uc {:export-user-profile {:export-after-days 10 (set-config [:export-user-profile :last-time-exported] @lte)
:last-time-exported lte}} (should (should-export-profile? (* 12 86400)))
event-context (atom {:user-configuration uc})] (should (should-export-profile? (* 13 86400)))
(reset! ui-context {:event-context event-context}) (should (should-export-profile? (* 11 86400)))))
(should (should-export-profile? (* 12 86400)))
(should (should-export-profile? (* 13 86400)))
(should (should-export-profile? (* 11 86400))))))
(it "won't export if :export-after-days is :never" (it "won't export if :export-after-days is :never"
(let [lte (* 2 86400) (set-config [:export-user-profile :export-after-days] :never)
uc {:export-user-profile {:export-after-days :never (set-config [:export-user-profile :last-time-exported] @lte)
:last-time-exported lte}} (should-not (should-export-profile? (* 12 86400)))
event-context (atom {:user-configuration uc})] (should-not (should-export-profile? (* 13 86400)))
(reset! ui-context {:event-context event-context}) (should-not (should-export-profile? (* 11 86400))))
(should-not (should-export-profile? (* 12 86400)))
(should-not (should-export-profile? (* 13 86400)))
(should-not (should-export-profile? (* 11 86400)))))
(it "sets the last exported time" (it "sets the last exported time"
(let [lte (* 2 86400) (set-config [:export-user-profile :export-after-days] 10)
uc {:export-user-profile {:export-after-days 10 (set-config [:export-user-profile :last-time-exported] @lte)
:last-time-exported lte}}
event-context (atom {:user-configuration uc})]
(reset! ui-context {:event-context event-context}))
(set-last-time-profile-exported 99) (set-last-time-profile-exported 99)
(let [event-context (:event-context @ui-context)] (should= 99 (get-config [:export-user-profile :last-time-exported])))
(should= 99 (get-in @event-context
[:user-configuration :export-user-profile :last-time-exported])))
)
) )
(context "gather historical metadata" (context "gather historical metadata"
@ -76,25 +64,17 @@
(should= 0 (get-in uc [:import-metadata :last-time-imported])))) (should= 0 (get-in uc [:import-metadata :last-time-imported]))))
(it "decides if it is time to import" (it "decides if it is time to import"
(let [lti (* 2 86400) (set-config [:import-metadata :import-after-days] 10)
uc {:import-metadata {:import-after-days 10 (set-config [:import-metadata :last-time-imported] (* 2 86400))
:last-time-imported lti}} (should (should-import-metadata? (* 12 86400)))
event-context (atom {:user-configuration uc})] (should (should-import-metadata? (* 13 86400)))
(reset! ui-context {:event-context event-context}) (should-not (should-import-metadata? (* 11 86400))))
(should (should-import-metadata? (* 12 86400)))
(should (should-import-metadata? (* 13 86400)))
(should-not (should-import-metadata? (* 11 86400)))))
(it "sets the last imported time" (it "sets the last imported time"
(let [lti (* 2 86400) (set-config [:import-metadata :import-after-days] 10)
uc {:import-metadata {:import-after-days 10 (set-config [:import-metadata :last-time-imported] (* 2 86400))
:last-time-imported lti}}
event-context (atom {:user-configuration uc})]
(reset! ui-context {:event-context event-context}))
(set-last-time-metadata-imported 99) (set-last-time-metadata-imported 99)
(should= 99 (get-config [:import-metadata :last-time-imported])))
(should= 99 (get-config [:import-metadata :last-time-imported]))
)
) )
) )

View File

@ -23,8 +23,7 @@
lte (get xup :last-time-exported 0) lte (get xup :last-time-exported 0)
xup (assoc xup :export-after-days xad xup (assoc xup :export-after-days xad
:last-time-exported lte)] :last-time-exported lte)]
(assoc user-configuration :export-user-profile xup)) (assoc user-configuration :export-user-profile xup)))
)
(defn validate-import-metadata [uc] (defn validate-import-metadata [uc]
(let [im (get uc :import-metadata {}) (let [im (get uc :import-metadata {})