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"}])
(change-tabs-list-name "old-name" "new-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"
(set-mem :tabs-list [{:name "old-name"} {:name "some-name"}])
(change-tabs-list-name "bad-name" "new-name")
(should= [{:name "old-name"} {:name "some-name"}]
(:tabs-list @(:event-context @ui-context)))))
(get-mem :tabs-list))))
(context "delete-tab-from-tabs-list"
(it "deletes an existing tab"
(set-mem :tabs-list [{:name "old-name"} {:name "some-name"}])
(delete-tab-from-tabs-list "old-name")
(should= [{:name "some-name"}]
(:tabs-list @(:event-context @ui-context)))))
(get-mem :tabs-list))))
(context "add-tab-to-tabs-list"
(it "adds-a-tab"
@ -52,7 +52,7 @@
(add-tab-to-tabs-list "new-name")
(should= [{:name "some-name"}
{:name "new-name" :selected [] :blocked []}]
(:tabs-list @(:event-context @ui-context))))
(get-mem :tabs-list)))
)
(context "select-id-in-tab"
@ -61,5 +61,5 @@
(add-id-to-tab "tab" :selected 1)
(should= [{:name "tab" :selected [1]}
{: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.ui.swing.ui-context :refer :all]))
(declare lte)
(describe "user configuration"
(with-stubs)
(context "basic functions"
(before (reset! ui-context {:event-context (atom {})}))
(before (clear-mem))
(it "sets and gets a config"
(set-config :test "test")
(should= "test" (get-config :test)))
@ -17,6 +19,7 @@
)
(context "export user profile"
(with lte (* 2 86400))
(it "creates if empty"
(let [uc (validate {})]
(should (contains? uc :export-user-profile))
@ -25,47 +28,32 @@
(it "decides if it is time to export"
(with-redefs [keys-last-modified (fn [] 0)]
(let [lte (* 2 86400)
uc {:export-user-profile {:export-after-days 10
:last-time-exported lte}}
event-context (atom {:user-configuration uc})]
(reset! ui-context {:event-context event-context})
(should (should-export-profile? (* 12 86400)))
(should (should-export-profile? (* 13 86400)))
(should-not (should-export-profile? (* 11 86400))))))
(set-config [:export-user-profile :export-after-days] 10)
(set-config [:export-user-profile :last-time-exported] @lte)
(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"
(with-redefs [keys-last-modified (fn [] (* 3 86400))]
(let [lte (* 2 86400)
uc {:export-user-profile {:export-after-days 10
:last-time-exported lte}}
event-context (atom {:user-configuration uc})]
(reset! ui-context {:event-context event-context})
(should (should-export-profile? (* 12 86400)))
(should (should-export-profile? (* 13 86400)))
(should (should-export-profile? (* 11 86400))))))
(set-config [:export-user-profile :export-after-days] 10)
(set-config [:export-user-profile :last-time-exported] @lte)
(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"
(let [lte (* 2 86400)
uc {:export-user-profile {:export-after-days :never
:last-time-exported lte}}
event-context (atom {:user-configuration uc})]
(reset! ui-context {:event-context event-context})
(should-not (should-export-profile? (* 12 86400)))
(should-not (should-export-profile? (* 13 86400)))
(should-not (should-export-profile? (* 11 86400)))))
(set-config [:export-user-profile :export-after-days] :never)
(set-config [:export-user-profile :last-time-exported] @lte)
(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"
(let [lte (* 2 86400)
uc {:export-user-profile {:export-after-days 10
:last-time-exported lte}}
event-context (atom {:user-configuration uc})]
(reset! ui-context {:event-context event-context}))
(set-config [:export-user-profile :export-after-days] 10)
(set-config [:export-user-profile :last-time-exported] @lte)
(set-last-time-profile-exported 99)
(let [event-context (:event-context @ui-context)]
(should= 99 (get-in @event-context
[:user-configuration :export-user-profile :last-time-exported])))
)
(should= 99 (get-config [:export-user-profile :last-time-exported])))
)
(context "gather historical metadata"
@ -76,25 +64,17 @@
(should= 0 (get-in uc [:import-metadata :last-time-imported]))))
(it "decides if it is time to import"
(let [lti (* 2 86400)
uc {:import-metadata {:import-after-days 10
:last-time-imported lti}}
event-context (atom {:user-configuration uc})]
(reset! ui-context {:event-context event-context})
(should (should-import-metadata? (* 12 86400)))
(should (should-import-metadata? (* 13 86400)))
(should-not (should-import-metadata? (* 11 86400)))))
(set-config [:import-metadata :import-after-days] 10)
(set-config [:import-metadata :last-time-imported] (* 2 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"
(let [lti (* 2 86400)
uc {:import-metadata {:import-after-days 10
:last-time-imported lti}}
event-context (atom {:user-configuration uc})]
(reset! ui-context {:event-context event-context}))
(set-config [:import-metadata :import-after-days] 10)
(set-config [:import-metadata :last-time-imported] (* 2 86400))
(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)
xup (assoc xup :export-after-days xad
:last-time-exported lte)]
(assoc user-configuration :export-user-profile xup))
)
(assoc user-configuration :export-user-profile xup)))
(defn validate-import-metadata [uc]
(let [im (get uc :import-metadata {})