|
| 1 | +use crate::packages::normalize_pattern; |
| 2 | + |
| 3 | +#[test] |
| 4 | +fn normalizes_backslashes_to_forward_slashes() { |
| 5 | + let cases = vec![ |
| 6 | + // Windows-style backslashes |
| 7 | + ("projects\\apps\\*", "projects/apps/*/package.json"), |
| 8 | + ("projects\\libs\\lib1", "projects/libs/lib1/package.json"), |
| 9 | + ("apps\\*\\src", "apps/*/src/package.json"), |
| 10 | + // Mixed slashes |
| 11 | + ("projects\\mixed/pkg1", "projects/mixed/pkg1/package.json"), |
| 12 | + ("apps/test\\utils", "apps/test/utils/package.json"), |
| 13 | + // Already normalized (forward slashes) |
| 14 | + ("projects/apps/*", "projects/apps/*/package.json"), |
| 15 | + ("packages/*", "packages/*/package.json"), |
| 16 | + // Already includes package.json with backslashes |
| 17 | + ("apps\\*/package.json", "apps/*/package.json"), |
| 18 | + ("projects\\libs\\*\\package.json", "projects/libs/*/package.json"), |
| 19 | + // Already includes package.json with forward slashes |
| 20 | + ("apps/*/package.json", "apps/*/package.json"), |
| 21 | + ("packages/*/package.json", "packages/*/package.json"), |
| 22 | + // Just package.json |
| 23 | + ("package.json", "package.json"), |
| 24 | + // Complex patterns |
| 25 | + ("**\\*\\package.json", "**/*/package.json"), |
| 26 | + ("src\\**\\tests", "src/**/tests/package.json"), |
| 27 | + ]; |
| 28 | + |
| 29 | + for (input, expected) in cases { |
| 30 | + let result = normalize_pattern(input.to_string()); |
| 31 | + assert_eq!(result, expected, "normalize_pattern({input:?}) should return {expected:?}"); |
| 32 | + } |
| 33 | +} |
0 commit comments