encre_css/plugins/grid/
mod.rs1pub mod gap;
3pub mod grid_auto_columns;
4pub mod grid_auto_flow;
5pub mod grid_auto_rows;
6pub mod grid_column;
7pub mod grid_row;
8pub mod grid_template_columns;
9pub mod grid_template_rows;
10
11#[cfg(test)]
12mod tests {
13 use crate::{generate, utils::testing::base_config};
14
15 use pretty_assertions::assert_eq;
16
17 #[test]
18 fn gap() {
19 assert_eq!(
21 generate(["gap-4"], &base_config()),
22 ".gap-4 {
23 gap: 1rem;
24}"
25 );
26 assert_eq!(
27 generate(["-gap-4"], &base_config()),
28 ".-gap-4 {
29 gap: -1rem;
30}"
31 );
32 assert_eq!(
33 generate(["gap-[40px]"], &base_config()),
34 r".gap-\[40px\] {
35 gap: 40px;
36}"
37 );
38
39 assert_eq!(
41 generate(["gap-x-4"], &base_config()),
42 ".gap-x-4 {
43 column-gap: 1rem;
44}"
45 );
46 assert_eq!(
47 generate(["-gap-x-4"], &base_config()),
48 ".-gap-x-4 {
49 column-gap: -1rem;
50}"
51 );
52 assert_eq!(
53 generate(["gap-x-[40px]"], &base_config()),
54 r".gap-x-\[40px\] {
55 column-gap: 40px;
56}"
57 );
58
59 assert_eq!(
61 generate(["gap-y-4"], &base_config()),
62 ".gap-y-4 {
63 row-gap: 1rem;
64}"
65 );
66 assert_eq!(
67 generate(["-gap-y-4"], &base_config()),
68 ".-gap-y-4 {
69 row-gap: -1rem;
70}"
71 );
72 assert_eq!(
73 generate(["gap-y-[40px]"], &base_config()),
74 r".gap-y-\[40px\] {
75 row-gap: 40px;
76}"
77 );
78 }
79
80 #[test]
81 fn grid_auto_columns() {
82 assert_eq!(
83 generate(["auto-cols-auto"], &base_config()),
84 ".auto-cols-auto {
85 grid-auto-columns: auto;
86}"
87 );
88 assert_eq!(
89 generate(["auto-cols-fr"], &base_config()),
90 ".auto-cols-fr {
91 grid-auto-columns: minmax(0, 1fr);
92}"
93 );
94 assert_eq!(
95 generate(
96 ["auto-cols-[100px_minmax(100px,_auto)_10%_0.5fr_fit-content(400px)]"],
97 &base_config(),
98 ),
99 r".auto-cols-\[100px_minmax\(100px\,_auto\)_10\%_0\.5fr_fit-content\(400px\)\] {
100 grid-auto-columns: 100px minmax(100px, auto) 10% 0.5fr fit-content(400px);
101}"
102 );
103 }
104
105 #[test]
106 fn grid_auto_flow() {
107 assert_eq!(
108 generate(["grid-flow-row"], &base_config()),
109 ".grid-flow-row {
110 grid-auto-flow: row;
111}"
112 );
113 assert_eq!(
114 generate(["grid-flow-col-dense"], &base_config()),
115 ".grid-flow-col-dense {
116 grid-auto-flow: column dense;
117}"
118 );
119 }
120
121 #[test]
122 fn grid_auto_rows() {
123 assert_eq!(
124 generate(["auto-rows-auto"], &base_config()),
125 ".auto-rows-auto {
126 grid-auto-rows: auto;
127}"
128 );
129 assert_eq!(
130 generate(["auto-rows-fr"], &base_config()),
131 ".auto-rows-fr {
132 grid-auto-rows: minmax(0, 1fr);
133}"
134 );
135 assert_eq!(
136 generate(
137 ["auto-rows-[100px_minmax(100px,_auto)_10%_0.5fr_fit-content(400px)]"],
138 &base_config(),
139 ),
140 r".auto-rows-\[100px_minmax\(100px\,_auto\)_10\%_0\.5fr_fit-content\(400px\)\] {
141 grid-auto-rows: 100px minmax(100px, auto) 10% 0.5fr fit-content(400px);
142}"
143 );
144 }
145
146 #[test]
147 fn grid_column() {
148 assert_eq!(
149 generate(["col-auto"], &base_config()),
150 ".col-auto {
151 grid-column: auto;
152}"
153 );
154 assert_eq!(
155 generate(["col-span-12"], &base_config()),
156 ".col-span-12 {
157 grid-column: span 12 / span 12;
158}"
159 );
160 assert_eq!(
161 generate(["col-span-full"], &base_config()),
162 ".col-span-full {
163 grid-column: 1 / -1;
164}"
165 );
166 assert_eq!(
167 generate(["col-start-2"], &base_config()),
168 ".col-start-2 {
169 grid-column-start: 2;
170}"
171 );
172 assert_eq!(
173 generate(["col-end-4"], &base_config()),
174 ".col-end-4 {
175 grid-column-end: 4;
176}"
177 );
178 assert_eq!(
179 generate(["col-[span_2_/_7]"], &base_config()),
180 r".col-\[span_2_\/_7\] {
181 grid-column: span 2 / 7;
182}"
183 );
184 }
185
186 #[test]
187 fn grid_row() {
188 assert_eq!(
189 generate(["row-auto"], &base_config()),
190 ".row-auto {
191 grid-row: auto;
192}"
193 );
194 assert_eq!(
195 generate(["row-span-12"], &base_config()),
196 ".row-span-12 {
197 grid-row: span 12 / span 12;
198}"
199 );
200 assert_eq!(
201 generate(["row-span-full"], &base_config()),
202 ".row-span-full {
203 grid-row: 1 / -1;
204}"
205 );
206 assert_eq!(
207 generate(["row-start-2"], &base_config()),
208 ".row-start-2 {
209 grid-row-start: 2;
210}"
211 );
212 assert_eq!(
213 generate(["row-end-4"], &base_config()),
214 ".row-end-4 {
215 grid-row-end: 4;
216}"
217 );
218 assert_eq!(
219 generate(["row-[span_2_/_7]"], &base_config()),
220 r".row-\[span_2_\/_7\] {
221 grid-row: span 2 / 7;
222}"
223 );
224 }
225
226 #[test]
227 fn grid_template_columns() {
228 assert_eq!(
229 generate(["grid-cols-4"], &base_config()),
230 ".grid-cols-4 {
231 grid-template-columns: repeat(4, minmax(0, 1fr));
232}"
233 );
234 assert_eq!(
235 generate(["grid-cols-none"], &base_config()),
236 ".grid-cols-none {
237 grid-template-columns: none;
238}"
239 );
240 }
241
242 #[test]
243 fn grid_template_rows() {
244 assert_eq!(
245 generate(["grid-rows-4"], &base_config()),
246 ".grid-rows-4 {
247 grid-template-rows: repeat(4, minmax(0, 1fr));
248}"
249 );
250 assert_eq!(
251 generate(["grid-rows-none"], &base_config()),
252 ".grid-rows-none {
253 grid-template-rows: none;
254}"
255 );
256 }
257}