nixite/testing/elems.test.nix

83 lines
2.1 KiB
Nix
Raw Normal View History

2024-01-02 09:18:30 +00:00
{it,...}:let
2023-12-31 00:24:48 +00:00
elems = import ../nixite/elems.nix;
style = import ../nixite/style.nix;
2023-12-31 00:24:48 +00:00
html = import ../nixite/html.nix;
in with elems; [
(it "makes a p tag" {
expected = html.tag "p" { } "foobar";
actual = p { } "foobar";
asString = true;
})
(it "makes a div tag" {
expected = html.tag "div" { } "foobar";
actual = div { } "foobar";
asString = true;
})
(it "makes a section tag" {
expected = html.tag "section" { } "foobar";
actual = section { } "foobar";
asString = true;
})
(it "makes a span tag" {
expected = html.tag "span" { } "foobar";
actual = span { } "foobar";
asString = true;
})
(it "makes a main tag" {
expected = html.tag "main" { } [ "yeet" ];
actual = main { } [ "yeet" ];
asString = true;
})
(it "makes a title tag" {
expected = html.tag "title" { } "foobar";
actual = title { } "foobar";
asString = true;
})
(it "makes an a tag" {
expected = html.tag "a" { href = "https://example.com"; } "example";
actual = a { href = "https://example.com"; } "example";
asString = true;
})
(it "lets the a tag drop the props" {
2024-01-01 06:33:57 +00:00
expected = html.tag "a" { href = "https://example.com"; } "example";
actual = a "https://example.com" "example";
asString = true;
})
(it "lets you extend the a tag" {
expected = [ "linky" ];
actual = ((style.component a "linky" { }) "https://example.com"
"example").attrs.class;
asString = true;
})
(it "makes a stylesheet link" {
expected = html.tag "link" {
href = "/style";
rel = "stylesheet";
} "";
actual = Stylesheet { href = "/style"; };
asString = true;
})
(it "makes a list" {
2024-01-01 06:33:57 +00:00
expected = html.tag "ul" { __ = ""; } [
(html.tag "li" { } "foo")
(html.tag "li" { } "bar")
(html.tag "li" { } "baz")
];
actual = List { } [ "foo" "bar" "baz" ];
asString = true;
})
(it "makes an html doc" {
expected = html.tag "html" {
__child = "";
class = [ ];
lang = "en";
} [ (html.tag "head" { } [ "foo" ]) (html.tag "body" { } "bar") ];
actual = Doc { } [ [ "foo" ] "bar" ];
asString = true;
})
]