Fix tests and add tests for kitchen lights
This commit is contained in:
1 parent
15e50322c4
commit
078f24e4b9
2 files changed
+12
-4
No files matched your search
+3
-2
@@ -20,6 +20,7 @@ import qualified Hedgehog.Range as Range
|
|||||||
import Test.Hspec
|
import Test.Hspec
|
||||||
import Test.Hspec.Hedgehog
|
import Test.Hspec.Hedgehog
|
||||||
import Data.Maybe (listToMaybe)
|
import Data.Maybe (listToMaybe)
|
||||||
|
import AFRP.Diagram (emptyDiagram)
|
||||||
|
|
||||||
fakeRequest :: Request
|
fakeRequest :: Request
|
||||||
fakeRequest = Request (sec 0) utc nil "test"
|
fakeRequest = Request (sec 0) utc nil "test"
|
||||||
@@ -536,11 +537,11 @@ sampleSpec = describe "sample" $ do
|
|||||||
|
|
||||||
-- | A stateless arrow carrying a fixed entity set, for testing propagation.
|
-- | A stateless arrow carrying a fixed entity set, for testing propagation.
|
||||||
subscribed :: S.Set T.Text -> Mealy Identity Int Int
|
subscribed :: S.Set T.Text -> Mealy Identity Int Int
|
||||||
subscribed ents = Mealy ents $ \_ -> Fun $ \_ a -> a
|
subscribed ents = Mealy ents emptyDiagram $ \_ -> Fun $ \_ a -> a
|
||||||
|
|
||||||
-- | Same as 'subscribed' but yields a function, for testing '<*>'.
|
-- | Same as 'subscribed' but yields a function, for testing '<*>'.
|
||||||
subscribedF :: S.Set T.Text -> Mealy Identity Int (Int -> Int)
|
subscribedF :: S.Set T.Text -> Mealy Identity Int (Int -> Int)
|
||||||
subscribedF ents = Mealy ents $ \_ -> Fun $ \_ a -> (a +)
|
subscribedF ents = Mealy ents emptyDiagram $ \_ -> Fun $ \_ a -> (a +)
|
||||||
|
|
||||||
entitiesSpec :: Spec
|
entitiesSpec :: Spec
|
||||||
entitiesSpec = describe "entities" $ do
|
entitiesSpec = describe "entities" $ do
|
||||||
|
|||||||
+9
-2
@@ -11,6 +11,7 @@ import HomeAssistant.Controller.Kitchen
|
|||||||
import Support
|
import Support
|
||||||
import Test.Hspec
|
import Test.Hspec
|
||||||
import Data.Default (def)
|
import Data.Default (def)
|
||||||
|
import Data.Time (getCurrentTime, addUTCTime)
|
||||||
|
|
||||||
-- Helper functions for creating test events
|
-- Helper functions for creating test events
|
||||||
testDinnerLightLevel :: Int -> Event Value
|
testDinnerLightLevel :: Int -> Event Value
|
||||||
@@ -37,9 +38,15 @@ dinnerTableSpec = describe "dinnerTableController" $ do
|
|||||||
services (runHASS dinnerTableController [testDinnerLightLevel 10, testDinnerPresence "on"])
|
services (runHASS dinnerTableController [testDinnerLightLevel 10, testDinnerPresence "on"])
|
||||||
`shouldBe` [[switchService [EntityId "switch.adaptive_lighting_ruokapoydan_valot_sleep_mode"] True], [switchService [EntityId "switch.adaptive_lighting_ruokapoydan_valot_sleep_mode"] False, light [EntityId "light.kitchen_dining_large"] (On def)]]
|
`shouldBe` [[switchService [EntityId "switch.adaptive_lighting_ruokapoydan_valot_sleep_mode"] True], [switchService [EntityId "switch.adaptive_lighting_ruokapoydan_valot_sleep_mode"] False, light [EntityId "light.kitchen_dining_large"] (On def)]]
|
||||||
|
|
||||||
it "turns lights off when presence is unoccupied" $ do
|
it "turns lights to sleep when presence is unoccupied" $ do
|
||||||
services (runHASS dinnerTableController [testDinnerLightLevel 10, testDinnerPresence "off"])
|
now <- getCurrentTime
|
||||||
|
services (runHASSTimed dinnerTableController [(now, testDinnerLightLevel 10), (now, testDinnerPresence "off")])
|
||||||
`shouldBe` [[switchService [EntityId "switch.adaptive_lighting_ruokapoydan_valot_sleep_mode"] True], []]
|
`shouldBe` [[switchService [EntityId "switch.adaptive_lighting_ruokapoydan_valot_sleep_mode"] True], []]
|
||||||
|
it "turns lights off when no presence for 300 seconds" $ do
|
||||||
|
now <- getCurrentTime
|
||||||
|
let later = 305 `addUTCTime` now
|
||||||
|
services (runHASSTimed dinnerTableController [(now, testDinnerLightLevel 10), (now, testDinnerPresence "off"), (later, Tick)])
|
||||||
|
`shouldBe` [[switchService [EntityId "switch.adaptive_lighting_ruokapoydan_valot_sleep_mode"] True], [], [switchService [EntityId "switch.adaptive_lighting_ruokapoydan_valot_sleep_mode"] False, light [EntityId "light.kitchen_dining_large"] Off]]
|
||||||
|
|
||||||
it "does nothing on Tick" $ do
|
it "does nothing on Tick" $ do
|
||||||
services (runHASS dinnerTableController [Tick])
|
services (runHASS dinnerTableController [Tick])
|
||||||
|
|||||||
Reference in new issue
Block a user