encre_css/plugins/spacing/
mod.rs1pub mod margin;
3pub mod padding;
4pub mod space_between;
5
6#[cfg(test)]
7mod tests {
8 use crate::{generate, utils::testing::base_config};
9
10 use pretty_assertions::assert_eq;
11
12 #[test]
13 fn margin() {
14 assert_eq!(
15 generate(["m-2"], &base_config()),
16 ".m-2 {
17 margin: 0.5rem;
18}"
19 );
20 assert_eq!(
21 generate(["mt-auto"], &base_config()),
22 ".mt-auto {
23 margin-top: auto;
24}"
25 );
26 assert_eq!(
27 generate(["mx-[2px]"], &base_config()),
28 r".mx-\[2px\] {
29 margin-inline: 2px;
30}"
31 );
32 assert_eq!(
33 generate(["my-[20%]"], &base_config()),
34 r".my-\[20\%\] {
35 margin-block: 20%;
36}"
37 );
38 }
39
40 #[test]
41 fn padding() {
42 assert_eq!(
43 generate(["p-2"], &base_config()),
44 ".p-2 {
45 padding: 0.5rem;
46}"
47 );
48 assert_eq!(
49 generate(["pt-auto"], &base_config()),
50 ".pt-auto {
51 padding-top: auto;
52}"
53 );
54 assert_eq!(
55 generate(["px-[2px]"], &base_config()),
56 r".px-\[2px\] {
57 padding-inline: 2px;
58}"
59 );
60 assert_eq!(
61 generate(["py-[20%]"], &base_config()),
62 r".py-\[20\%\] {
63 padding-block: 20%;
64}"
65 );
66 }
67
68 #[test]
69 fn space_between() {
70 assert_eq!(
71 generate(["space-x-42"], &base_config()),
72 ".space-x-42 > :not(:last-child) {
73 --en-space-x-reverse: 0;
74 margin-inline-start: calc(10.5rem * var(--en-space-x-reverse));
75 margin-inline-end: calc(10.5rem * calc(1 - var(--en-space-x-reverse)));
76}"
77 );
78 assert_eq!(
79 generate(["space-x-[42px]"], &base_config()),
80 r".space-x-\[42px\] > :not(:last-child) {
81 --en-space-x-reverse: 0;
82 margin-inline-start: calc(42px * var(--en-space-x-reverse));
83 margin-inline-end: calc(42px * calc(1 - var(--en-space-x-reverse)));
84}"
85 );
86 assert_eq!(
87 generate(["space-x-reverse"], &base_config()),
88 ".space-x-reverse > :not(:last-child) {
89 --en-space-x-reverse: 1;
90}"
91 );
92 assert_eq!(
93 generate(["space-y-reverse"], &base_config()),
94 ".space-y-reverse > :not(:last-child) {
95 --en-space-y-reverse: 1;
96}"
97 );
98 assert_eq!(
99 generate(["space-y-[12%]"], &base_config()),
100 r".space-y-\[12\%\] > :not(:last-child) {
101 --en-space-y-reverse: 0;
102 margin-block-start: calc(12% * var(--en-space-y-reverse));
103 margin-block-end: calc(12% * calc(1 - var(--en-space-y-reverse)));
104}"
105 );
106 }
107}