Skip to content

Commit acc8f59

Browse files
committed
Add project suggestion tests depending on InvalidProjectNameReason
1 parent ea815e4 commit acc8f59

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

compiler-cli/src/new/tests.rs

+82
Original file line numberDiff line numberDiff line change
@@ -354,3 +354,85 @@ fn validate_name_format() {
354354
));
355355
}
356356
}
357+
358+
#[test]
359+
fn suggest_valid_names() {
360+
assert_eq!(
361+
crate::new::suggest_valid_name(
362+
"gleam_",
363+
&crate::new::InvalidProjectNameReason::GleamPrefix
364+
),
365+
None
366+
);
367+
assert_eq!(
368+
crate::new::suggest_valid_name(
369+
"gleam_project",
370+
&crate::new::InvalidProjectNameReason::GleamPrefix
371+
),
372+
Some("project".to_string())
373+
);
374+
375+
assert_eq!(
376+
crate::new::suggest_valid_name(
377+
"try",
378+
&crate::new::InvalidProjectNameReason::ErlangReservedWord
379+
),
380+
Some("try_app".to_string())
381+
);
382+
383+
assert_eq!(
384+
crate::new::suggest_valid_name(
385+
"erl_eval",
386+
&crate::new::InvalidProjectNameReason::ErlangStandardLibraryModule
387+
),
388+
Some("erl_eval_app".to_string())
389+
);
390+
391+
assert_eq!(
392+
crate::new::suggest_valid_name(
393+
"assert",
394+
&crate::new::InvalidProjectNameReason::GleamReservedWord
395+
),
396+
Some("assert_app".to_string())
397+
);
398+
399+
assert_eq!(
400+
crate::new::suggest_valid_name(
401+
"gleam",
402+
&crate::new::InvalidProjectNameReason::GleamReservedModule
403+
),
404+
None
405+
);
406+
407+
assert_eq!(
408+
crate::new::suggest_valid_name(
409+
"Project_Name",
410+
&crate::new::InvalidProjectNameReason::FormatNotLowercase
411+
),
412+
Some("project_name".to_string())
413+
);
414+
415+
assert_eq!(
416+
crate::new::suggest_valid_name(
417+
"Pr0ject-n4me!",
418+
&crate::new::InvalidProjectNameReason::Format
419+
),
420+
Some("pr0ject_n4me_".to_string())
421+
);
422+
423+
assert_eq!(
424+
crate::new::suggest_valid_name(
425+
"Pr0ject--n4me!",
426+
&crate::new::InvalidProjectNameReason::Format
427+
),
428+
Some("pr0ject_n4me_".to_string())
429+
);
430+
431+
assert_eq!(
432+
crate::new::suggest_valid_name(
433+
"_pr0ject-name",
434+
&crate::new::InvalidProjectNameReason::Format
435+
),
436+
None
437+
);
438+
}

0 commit comments

Comments
 (0)