{it,...}:let elems = import ../nixite/elems.nix; style = import ../nixite/style.nix; 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" { 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" { 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; }) ]