grass/tests/for.rs
2020-04-23 18:53:19 -04:00

61 lines
1.8 KiB
Rust

#![cfg(test)]
#[macro_use]
mod macros;
test!(
for_1_through_3,
"@for $i from 1 through 3 {\n a {\n color: $i;\n }\n}\n",
"a {\n color: 1;\n}\n\na {\n color: 2;\n}\n\na {\n color: 3;\n}\n"
);
test!(
for_1_to_3,
"@for $i from 1 to 3 {\n a {\n color: $i;\n }\n}\n",
"a {\n color: 1;\n}\n\na {\n color: 2;\n}\n"
);
test!(
for_3_through_1,
"@for $i from 3 through 1 {\n a {\n color: $i;\n }\n}\n",
"a {\n color: 3;\n}\n\na {\n color: 2;\n}\n\na {\n color: 1;\n}\n"
);
test!(
for_3_to_1,
"@for $i from 3 to 1 {\n a {\n color: $i;\n }\n}\n",
"a {\n color: 3;\n}\n\na {\n color: 2;\n}\n"
);
test!(
for_var_through_var,
"$a: 1;\n$b: 3;\n@for $x from $a through $b {\n div {\n color: $x;\n }\n}\n",
"div {\n color: 1;\n}\n\ndiv {\n color: 2;\n}\n\ndiv {\n color: 3;\n}\n"
);
test!(
for_var_decl,
"@for $x from 1 to 3 {\n $limit: $x;\n\n a {\n color: $limit;\n }\n}\n",
"a {\n color: 1;\n}\n\na {\n color: 2;\n}\n"
);
test!(
for_styles,
"a {\n @for $i from 1 to 3 {\n color: $i;\n }\n}\n",
"a {\n color: 1;\n color: 2;\n}\n"
);
test!(
scope,
"a {\n $a: red;\n @for $i from 1 to 3 {\n $a: blue;\n }\n color: $a;\n}\n",
"a {\n color: blue;\n}\n"
);
test!(
simple_return_in_function,
"@function foo() {\n @for $i from 1 to 2 {\n @return $i;\n }\n}\na {\n color: foo();\n}\n",
"a {\n color: 1;\n}\n"
);
test!(
return_gated_by_if_in_function,
"@function foo() {\n @for $i from 1 through 2 {\n @if $i==2 {\n @return $i;\n }\n }\n}\na {\n color: foo();\n}\n",
"a {\n color: 2;\n}\n"
);
test!(
inner_if,
"a {\n @for $i from 1 to 3 {\n @if $i==2 {\n color: red;\n }\n }\n}\n",
"a {\n color: red;\n}\n"
);