Skip to content

Commit 17c3ca8

Browse files
committed
Add tests
1 parent ddfcd5f commit 17c3ca8

File tree

1 file changed

+150
-0
lines changed

1 file changed

+150
-0
lines changed

β€Žtests/attributes.rs

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,3 +268,153 @@ fn aliases_can_be_defined_as_attributes() {
268268
.status(EXIT_SUCCESS)
269269
.run();
270270
}
271+
272+
#[test]
273+
fn multiple_aliases_can_be_defined_as_attributes() {
274+
Test::new()
275+
.justfile(
276+
"
277+
[alias('bar')]
278+
[alias('foo')]
279+
baz:
280+
",
281+
)
282+
.arg("foo")
283+
.status(EXIT_SUCCESS)
284+
.run();
285+
}
286+
287+
#[test]
288+
fn duplicate_alias_attributes_are_forbidden() {
289+
Test::new()
290+
.justfile(
291+
"
292+
[alias('foo')]
293+
[alias('foo')]
294+
baz:
295+
",
296+
)
297+
.arg("foo")
298+
.stderr(
299+
"
300+
error: Alias `foo` first defined on line 1 is redefined on line 2
301+
β€”β€”β–Ά justfile:2:9
302+
β”‚
303+
2 β”‚ [alias('foo')]
304+
β”‚ ^^^
305+
",
306+
)
307+
.status(EXIT_FAILURE)
308+
.run();
309+
}
310+
311+
#[test]
312+
fn alias_attributes_duplicating_alias_definition_is_forbidden() {
313+
Test::new()
314+
.justfile(
315+
"
316+
alias foo := baz
317+
[alias('foo')]
318+
baz:
319+
",
320+
)
321+
.arg("foo")
322+
.stderr(
323+
"
324+
error: Alias `foo` first defined on line 1 is redefined on line 2
325+
β€”β€”β–Ά justfile:2:9
326+
β”‚
327+
2 β”‚ [alias('foo')]
328+
β”‚ ^^^
329+
",
330+
)
331+
.status(EXIT_FAILURE)
332+
.run();
333+
}
334+
335+
#[test]
336+
fn alias_definitions_duplicating_alias_attributes_is_forbidden() {
337+
Test::new()
338+
.justfile(
339+
"
340+
[alias('foo')]
341+
baz:
342+
343+
alias foo := baz
344+
",
345+
)
346+
.arg("foo")
347+
.stderr(
348+
"
349+
error: Alias `foo` first defined on line 1 is redefined on line 4
350+
β€”β€”β–Ά justfile:4:7
351+
β”‚
352+
4 β”‚ alias foo := baz
353+
β”‚ ^^^
354+
",
355+
)
356+
.status(EXIT_FAILURE)
357+
.run();
358+
}
359+
360+
#[test]
361+
fn alphanumeric_and_underscores_are_valid_alias_attributes() {
362+
let out = Test::new()
363+
.justfile(
364+
"
365+
[alias('alpha_numeric_123')]
366+
baz:
367+
",
368+
)
369+
.arg("alpha_numeric_123")
370+
.status(EXIT_SUCCESS)
371+
.run();
372+
373+
dbg!(out.stdout);
374+
}
375+
376+
#[test]
377+
fn nonalphanumeric_alias_attribute_is_forbidden() {
378+
Test::new()
379+
.justfile(
380+
"
381+
[alias('invalid name!')]
382+
baz:
383+
",
384+
)
385+
.arg("foo")
386+
.stderr(
387+
"
388+
error: `invalid name!` is not a valid alias. Aliases must only contain alphanumeric characters and underscores.
389+
β€”β€”β–Ά justfile:1:9
390+
β”‚
391+
1 β”‚ [alias('invalid name!')]
392+
β”‚ ^^^^^^^^^^^^^
393+
",
394+
)
395+
.status(EXIT_FAILURE)
396+
.run();
397+
}
398+
399+
#[test]
400+
fn empty_alias_attribute_is_forbidden() {
401+
Test::new()
402+
.justfile(
403+
"
404+
[alias('')]
405+
baz:
406+
",
407+
)
408+
.arg("baz")
409+
.stderr(
410+
"
411+
error: `` is not a valid alias. Aliases must only contain alphanumeric characters and underscores.
412+
β€”β€”β–Ά justfile:1:9
413+
β”‚
414+
1 β”‚ [alias('')]
415+
β”‚ ^
416+
",
417+
)
418+
.status(EXIT_FAILURE)
419+
.run();
420+
}

0 commit comments

Comments
Β (0)