nixite/testing/html.test.nix

97 lines
2 KiB
Nix
Raw Normal View History

2023-12-31 00:24:48 +00:00
let
html = import ../nixite/html.nix;
it = import ./it.nix;
in with html; [
2024-01-01 03:20:59 +00:00
(it "keeps info in the tag" (let p = tag "p";
in {
actual = p.tag;
expected = "p";
}))
(it "keeps attr info in the tag" (let p = tag "p" { class = ""; };
in {
actual = p.attrs;
expected = { class = ""; };
}))
2024-01-01 04:41:56 +00:00
(it "keeps tag after setting attrs" (let p = tag "p" { class = ""; };
in {
actual = p.tag;
expected = "p";
}))
(it "makes a p tag" {
actual = tag "p" { } "Hello";
expected = {
tag = "p";
attrs = { };
child = "Hello";
__toString = toHTML;
};
})
2023-12-31 00:24:48 +00:00
2024-01-01 06:33:57 +00:00
(it "makes element" (let para = (tag "p" { });
in {
expected = "p";
actual = para.tag;
}))
2024-01-01 04:41:56 +00:00
2024-01-01 06:33:57 +00:00
(it "keeps attrs on element" (let
2024-01-01 04:41:56 +00:00
attrs = { style = { foo = "bar"; }; };
para = (tag "p" attrs);
2024-01-01 06:33:57 +00:00
in {
expected = attrs;
actual = para.attrs;
}))
2024-01-01 04:41:56 +00:00
2024-01-01 06:33:57 +00:00
(it "makes renderable element" (let
attrs = { style = { foo = "bar"; }; };
para = (tag "p" attrs);
in {
expected = "<p ></p>";
actual = toString (para "");
}))
2024-01-01 04:41:56 +00:00
2024-01-01 06:33:57 +00:00
(it "keeps tag" (let
attrs = { style = { foo = "bar"; }; };
para = (tag "p" attrs);
in {
expected = "p";
actual = (para "").tag;
}))
2024-01-01 04:41:56 +00:00
2024-01-01 06:33:57 +00:00
(it "keeps style" (let
attrs = { style = { foo = "bar"; }; };
para = (tag "p" attrs);
in {
expected = { foo = "bar"; };
actual = (para "").attrs.style;
}))
2024-01-01 04:41:56 +00:00
2024-01-01 06:33:57 +00:00
(it "works recursively" (let
attrs = { style = { foo = "bar"; }; };
para = (tag "p" attrs);
a = (tag "a" { });
in {
expected = "<p ><a >hello</a></p>";
actual = toString (para (a "hello"));
}))
2024-01-01 04:41:56 +00:00
(it "concatinates classes" {
actual = toString (tag "p" { class = [ "class1" "class2" ]; } "Hello");
expected = ''<p class="class1 class2">Hello</p>'';
})
2023-12-31 03:08:05 +00:00
(it "applies style" (let page = tag "html" { } [ (tag "head" { } [ "foo" ]) ];
in {
actual = addToHead page [ "bar" ];
expected = {
tag = "html";
attrs = { };
child = [ (tag "head" { } [ "foo" "bar" ]) ];
__toString = toHTML;
};
}))
]