module Saturn.Unstable.ConstantSpec where

import qualified Saturn.Unstable.Constant as Constant
import qualified Saturn.Unstable.Render as Render
import qualified Test.Hspec as Hspec

spec :: Hspec.Spec
spec :: Spec
spec = forall a. HasCallStack => String -> SpecWith a -> SpecWith a
Hspec.describe String
"Saturn.Unstable.Constant" forall a b. (a -> b) -> a -> b
$ do
  forall a. HasCallStack => String -> SpecWith a -> SpecWith a
Hspec.describe String
"everyMinute" forall a b. (a -> b) -> a -> b
$ do
    forall a.
(HasCallStack, Example a) =>
String -> a -> SpecWith (Arg a)
Hspec.it String
"renders correctly" forall a b. (a -> b) -> a -> b
$ do
      Schedule -> String
Render.toString Schedule
Constant.everyMinute forall a. (HasCallStack, Show a, Eq a) => a -> a -> Expectation
`Hspec.shouldBe` String
"* * * * *"

  forall a. HasCallStack => String -> SpecWith a -> SpecWith a
Hspec.describe String
"hourly" forall a b. (a -> b) -> a -> b
$ do
    forall a.
(HasCallStack, Example a) =>
String -> a -> SpecWith (Arg a)
Hspec.it String
"renders correctly" forall a b. (a -> b) -> a -> b
$ do
      Schedule -> String
Render.toString Schedule
Constant.hourly forall a. (HasCallStack, Show a, Eq a) => a -> a -> Expectation
`Hspec.shouldBe` String
"0 * * * *"

  forall a. HasCallStack => String -> SpecWith a -> SpecWith a
Hspec.describe String
"daily" forall a b. (a -> b) -> a -> b
$ do
    forall a.
(HasCallStack, Example a) =>
String -> a -> SpecWith (Arg a)
Hspec.it String
"renders correctly" forall a b. (a -> b) -> a -> b
$ do
      Schedule -> String
Render.toString Schedule
Constant.daily forall a. (HasCallStack, Show a, Eq a) => a -> a -> Expectation
`Hspec.shouldBe` String
"0 0 * * *"

  forall a. HasCallStack => String -> SpecWith a -> SpecWith a
Hspec.describe String
"weekly" forall a b. (a -> b) -> a -> b
$ do
    forall a.
(HasCallStack, Example a) =>
String -> a -> SpecWith (Arg a)
Hspec.it String
"renders correctly" forall a b. (a -> b) -> a -> b
$ do
      Schedule -> String
Render.toString Schedule
Constant.weekly forall a. (HasCallStack, Show a, Eq a) => a -> a -> Expectation
`Hspec.shouldBe` String
"0 0 * * 0"

  forall a. HasCallStack => String -> SpecWith a -> SpecWith a
Hspec.describe String
"monthly" forall a b. (a -> b) -> a -> b
$ do
    forall a.
(HasCallStack, Example a) =>
String -> a -> SpecWith (Arg a)
Hspec.it String
"renders correctly" forall a b. (a -> b) -> a -> b
$ do
      Schedule -> String
Render.toString Schedule
Constant.monthly forall a. (HasCallStack, Show a, Eq a) => a -> a -> Expectation
`Hspec.shouldBe` String
"0 0 1 * *"

  forall a. HasCallStack => String -> SpecWith a -> SpecWith a
Hspec.describe String
"yearly" forall a b. (a -> b) -> a -> b
$ do
    forall a.
(HasCallStack, Example a) =>
String -> a -> SpecWith (Arg a)
Hspec.it String
"renders correctly" forall a b. (a -> b) -> a -> b
$ do
      Schedule -> String
Render.toString Schedule
Constant.yearly forall a. (HasCallStack, Show a, Eq a) => a -> a -> Expectation
`Hspec.shouldBe` String
"0 0 1 1 *"