literal-flake-input-0.0.4: test/LiteralFlakeInput/Test/Nix.hs
{-# LANGUAGE MultilineStrings #-}
module LiteralFlakeInput.Test.Nix where
import Test.Tasty ( TestTree, testGroup )
import Test.Tasty.HUnit
import LiteralFlakeInput.Prelude
import LiteralFlakeInput.Nix
test_render :: TestTree
test_render =
testGroup "render"
[ testGroup "renderEntry"
[ testCase "nat"
$ renderEntry "a" "1" @?= "a=1;"
, testCase "bool"
$ renderEntry "a" "true" @?= "a=true;"
, testCase "false"
$ renderEntry "a" "false" @?= "a=false;"
, testCase "null"
$ renderEntry "a" "null" @?= "a=null;"
, testCase "string"
$ renderEntry "a" "hello world" @?= "a=\"hello world\";"
, testCase "esc double quote"
$ renderEntry "a" "hello \" world" @?= "a=\"hello \\\" world\";"
, testCase "esc left slash"
$ renderEntry "a" "hello \\" @?= "a=\"hello \\\\\";"
, testCase "quoted"
$ renderEntry "a" "\"hello\"" @?= "a=\"hello\";"
, testCase "list"
$ renderEntry "a" "[1 2]" @?= "a=[1 2];"
, testCase "attr-set"
$ renderEntry "a" "{x = 1; y = 2}" @?= "a={x = 1; y = 2};"
, testCase "lambda"
$ renderEntry "a" "x: x + 1" @?= "a=x: x + 1;"
, testCase "empty"
$ renderEntry "a" "" @?= "a=\"\";"
]
, testGroup "renderNixDer"
[ testCase "empty"
$ renderNixDer (NixDer []) @?= """{...}:{}"""
, testCase "one"
$ renderNixDer (NixDer [("key", "value")]) @?= """{...}:{key="value";}"""
, testCase "two"
$ renderNixDer (NixDer [("key", "value"), ("key2", "value2")])
@?= """{...}:{key="value";key2="value2";}"""
]
]