neuron-0.6.0.0: test/Neuron/VersionSpec.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Neuron.VersionSpec
( spec,
)
where
import qualified Data.Text as T
import Neuron.Version
import Relude
import Test.Hspec
spec :: Spec
spec = do
describe "Application version" $ do
it "should have dots" $ do
neuronVersion `shouldSatisfy` T.isInfixOf "."
-- TODO: Check minVersion in Default.dhall is same as the one in Paths_neuron
describe "must compare" $ do
let isGreater = shouldSatisfy
isLesserOrEqual = shouldNotSatisfy
it "simple versions" $ do
-- If the user requires 0.4, and we are "older than" than that, fail (aka. isGreater)
"0.7" `isGreater` olderThan
"0.6" `isLesserOrEqual` olderThan -- This is current version
"0.4" `isLesserOrEqual` olderThan
it "full versions" $ do
"0.7.1.2" `isGreater` olderThan
"0.6.12" `isGreater` olderThan
"0.6.11.8" `isGreater` olderThan
"0.6.0.0" `isLesserOrEqual` olderThan -- This is current version
"0.3.1.0" `isLesserOrEqual` olderThan
it "within same major version" $ do
"0.6.11.8" `isGreater` olderThan
"0.6.0.0" `isLesserOrEqual` olderThan -- This is current version