nixite/testing/style.test.nix
2023-12-31 03:08:41 +00:00

73 lines
1.5 KiB
Nix

let
style = import ../nixite/style.nix;
html = import ../nixite/html.nix;
it = import ./it.nix;
my =
(style.styled "p" "p" {} {
some-style = "some value";
})
(style.styled "div" "div" {class = ["something"];} {
this = "that";
})
(style.styled "s" "div" {
id = "s";
class = ["something"];
} {
s = "yes";
})
(style.styled "foobar" "div" {class = ["foo" "bar"];} {
something = "something";
})
(style.style "body" {
foo = "bar";
});
in [
(it "makes a p component" {
expected = html.tag "p" {} "yes";
actual = my.p {} "yes";
})
(it "makes a component" {
expected = html.tag "div" {class = ["something"];} "foobar";
actual = my.div {} "foobar";
})
(it "makes special components" {
expected = html.tag "div" {
id = "s";
class = ["something"];
} "foobar";
actual = my.s {} "foobar";
})
(it "works on many classes" {
expected = html.tag "div" {class = ["foo" "bar"];} "foobar";
actual = my.foobar {} "foobar";
})
(it "combines attrs" {
expected = html.tag "div" {
id = "foo";
class = ["something"];
} "foobar";
actual = my.div {id = "foo";} "foobar";
})
(it "makes a style" {
expected = ''
p {
some-style: some value;
}
div.something {
this: that;
}
div.something#s {
s: yes;
}
div.foo.bar {
something: something;
}
body {
foo: bar;
}
'';
actual = my.style;
})
]