cachix-0.3.6: test/InstallationModeSpec.hs
module InstallationModeSpec where
import Cachix.Client.InstallationMode
import qualified Cachix.Client.NixConf as NixConf
import Protolude
import Test.Hspec
spec :: Spec
spec = describe "getInstallationMode" $ do
it "NixOS with root prints configuration" $
let nixenv =
NixEnv
{ isTrusted = True, -- any
isRoot = True,
isNixOS = True
}
in getInstallationMode nixenv `shouldBe` WriteNixOS
it "NixOS without trust prints configuration plus trust" $
let nixenv =
NixEnv
{ isTrusted = False,
isRoot = False,
isNixOS = True
}
in getInstallationMode nixenv `shouldBe` UntrustedRequiresSudo
it "NixOS without trust prints configuration on older Nix" $
let nixenv =
NixEnv
{ isTrusted = False,
isRoot = False,
isNixOS = True
}
in getInstallationMode nixenv `shouldBe` UntrustedRequiresSudo
it "NixOS non-root trusted results into local install" $
let nixenv =
NixEnv
{ isTrusted = True,
isRoot = False,
isNixOS = True
}
in getInstallationMode nixenv `shouldBe` Install NixConf.Local
it "non-NixOS root results into global install" $
let nixenv =
NixEnv
{ isTrusted = True,
isRoot = True,
isNixOS = False
}
in getInstallationMode nixenv `shouldBe` Install NixConf.Global
it "non-NixOS with Nix 1.X root results into global install" $
let nixenv =
NixEnv
{ isTrusted = True,
isRoot = True,
isNixOS = False -- any
}
in getInstallationMode nixenv `shouldBe` Install NixConf.Global
it "non-NixOS non-root trusted results into local install" $
let nixenv =
NixEnv
{ isTrusted = True,
isRoot = False,
isNixOS = False
}
in getInstallationMode nixenv `shouldBe` Install NixConf.Local
it "non-NixOS non-root non-trusted results into required sudo" $
let nixenv =
NixEnv
{ isTrusted = False,
isRoot = False,
isNixOS = False
}
in getInstallationMode nixenv `shouldBe` UntrustedRequiresSudo