sea_orm_migration/
util.rs

1pub fn get_file_stem(path: &str) -> &str {
2    std::path::Path::new(path)
3        .file_stem()
4        .map(|f| f.to_str().unwrap())
5        .unwrap()
6}
7
8#[cfg(test)]
9mod tests {
10    use super::*;
11
12    #[test]
13    fn test_get_file_stem() {
14        let pair = vec![
15            (
16                "m20220101_000001_create_table.rs",
17                "m20220101_000001_create_table",
18            ),
19            (
20                "src/m20220101_000001_create_table.rs",
21                "m20220101_000001_create_table",
22            ),
23            (
24                "migration/src/m20220101_000001_create_table.rs",
25                "m20220101_000001_create_table",
26            ),
27            (
28                "/migration/src/m20220101_000001_create_table.tmp.rs",
29                "m20220101_000001_create_table.tmp",
30            ),
31        ];
32        for (path, expect) in pair {
33            assert_eq!(get_file_stem(path), expect);
34        }
35    }
36}