core/tests/builder_test.nix

90 lines
2.2 KiB
Nix

{
pkgs,
ntlib,
rensa,
...
}: {
suites."Builder" = {
pos = __curPos;
tests = [
{
name = "has system outputs";
expected = true;
actual = let
testFlake = rensa.build {
inputs = {};
cellsFrom = ../cells;
cellBlocks = with rensa.blocks; [
(simple "test")
];
systems = ["x86_64-linux"];
};
in
builtins.hasAttr "x86_64-linux" testFlake;
}
{
name = "has ren metadata";
expected = true;
actual = let
testFlake = rensa.build {
inputs = {};
cellsFrom = ../cells;
cellBlocks = with rensa.blocks; [
(simple "test")
];
systems = ["x86_64-linux"];
};
in
builtins.hasAttr "__ren" testFlake;
}
{
name = "merges outputs";
expected = {
packages = {
test-package = "merged";
};
};
actual = let
testFlake =
rensa.buildWith {
inputs = {};
cellsFrom = ../cells;
cellBlocks = with rensa.blocks; [
(simple "test")
];
systems = ["x86_64-linux"];
} {
packages = {
test-package = "merged";
};
};
in {
packages = testFlake.packages;
};
}
{
name = "eval test";
type = "script";
script = ''
${ntlib.helpers.path [pkgs.gnugrep pkgs.coreutils pkgs.nix]}
${ntlib.helpers.scriptHelpers}
result=$(nix eval --impure --expr '
let
rensa = import ${../lib} {lib = import ${pkgs.path}/lib;};
testFlake = rensa.build {
inputs = { test = "value"; };
cellsFrom = ${../cells};
cellBlocks = [];
systems = [ "x86_64-linux" ];
};
in
testFlake.__ren.__schema
')
assert "$result == \"v0\"" "should contain version"
'';
}
];
};
}