119 lines
3.2 KiB
Rust
119 lines
3.2 KiB
Rust
#[macro_use]
|
|
mod macros;
|
|
|
|
test!(
|
|
simple_nested,
|
|
".foo {\n @at-root {\n .bar {a: b}\n }\n}\n",
|
|
".bar {\n a: b;\n}\n"
|
|
);
|
|
test!(
|
|
with_selector,
|
|
".foo {\n @at-root .bar {a: b}\n}\n",
|
|
".bar {\n a: b;\n}\n"
|
|
);
|
|
test!(
|
|
with_selector_in_mixin,
|
|
"@mixin bar {\n @at-root .bar {a: b}\n}\n\n.foo {\n @include bar;\n}\n",
|
|
".bar {\n a: b;\n}\n"
|
|
);
|
|
test!(
|
|
with_super_selector,
|
|
".foo {\n @at-root & {\n a: b;\n }\n}\n",
|
|
".foo {\n a: b;\n}\n"
|
|
);
|
|
test!(
|
|
nested_with_super_selector,
|
|
".foo {\n @at-root & {\n .bar {\n @at-root & {\n a: b;\n }\n }\n }\n}\n",
|
|
".foo .bar {\n a: b;\n}\n"
|
|
);
|
|
test!(
|
|
deeply_nested_with_rulesets_and_styles,
|
|
".foo {\n @at-root .bar {\n a: b;\n c {\n d: e;\n foo {\n bar: baz;\n }\n h: j;\n }\n f: g;\n }\n}\n",
|
|
".bar {\n a: b;\n f: g;\n}\n.bar c {\n d: e;\n h: j;\n}\n.bar c foo {\n bar: baz;\n}\n"
|
|
);
|
|
test!(
|
|
super_selector_inside_with_nothing,
|
|
"foo {\n @at-root {\n & {\n color: bar;\n }\n }\n}\n",
|
|
"foo {\n color: bar;\n}\n"
|
|
);
|
|
test!(
|
|
interpolated_super_selector_with_nothing,
|
|
"test {\n @at-root {\n #{&}post {\n foo {\n bar: baz;\n }\n }\n }\n}\n",
|
|
"testpost foo {\n bar: baz;\n}\n"
|
|
);
|
|
test!(
|
|
with_ampersand_single,
|
|
"test {\n @at-root {\n #{&}post {\n foo {\n bar: baz;\n }\n }\n }\n}\n",
|
|
"testpost foo {\n bar: baz;\n}\n"
|
|
);
|
|
test!(
|
|
root_interpolated_ampersand,
|
|
"@at-root {\n #{&}post {\n foo {\n bar: baz;\n }\n }\n}\n",
|
|
"post foo {\n bar: baz;\n}\n"
|
|
);
|
|
test!(
|
|
nested_prefix_interpolated_ampersand,
|
|
"test {\n @at-root {\n pre#{&} {\n foo {\n bar: baz;\n }\n }\n }\n}\n",
|
|
"pretest foo {\n bar: baz;\n}\n"
|
|
);
|
|
test!(
|
|
nested_alone_interpolated_ampersand,
|
|
"test {\n @at-root {\n #{&} {\n foo {\n bar: baz;\n }\n }\n }\n}\n",
|
|
"test foo {\n bar: baz;\n}\n"
|
|
);
|
|
test!(
|
|
style_before_at_root,
|
|
"a {}\n\n@at-root {\n @-ms-viewport { width: device-width; }\n}\n",
|
|
"@-ms-viewport {\n width: device-width;\n}\n"
|
|
);
|
|
test!(
|
|
newline_between_style_rules_with_same_parent_but_first_is_in_at_root,
|
|
"a {
|
|
@at-root {
|
|
b {
|
|
color: red;
|
|
}
|
|
}
|
|
|
|
b {
|
|
color: red;
|
|
}
|
|
}",
|
|
"b {\n color: red;\n}\n\na b {\n color: red;\n}\n"
|
|
);
|
|
test!(
|
|
no_newline_between_style_rules_when_there_exists_a_selector,
|
|
"@at-root a {
|
|
a {
|
|
color: red;
|
|
}
|
|
|
|
a {
|
|
color: red;
|
|
}
|
|
}",
|
|
"a a {\n color: red;\n}\na a {\n color: red;\n}\n"
|
|
);
|
|
test!(
|
|
newline_between_style_rules_when_there_does_not_exist_a_selector,
|
|
"@at-root {
|
|
a {
|
|
color: red;
|
|
}
|
|
|
|
a {
|
|
color: red;
|
|
}
|
|
}",
|
|
"a {\n color: red;\n}\n\na {\n color: red;\n}\n"
|
|
);
|
|
error!(
|
|
#[ignore = "we do not currently validate missing closing curly braces"]
|
|
missing_closing_curly_brace,
|
|
"@at-root {", "Error: expected \"}\"."
|
|
);
|
|
error!(
|
|
style_at_toplevel_without_selector,
|
|
"@at-root { color: red; }", "Error: Found style at the toplevel inside @at-root."
|
|
);
|