Skip to content

Commit 6e0dec3

Browse files
committed
test(Compiler): Add module path resolution tests
1 parent ba2d905 commit 6e0dec3

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

  • tests/Compiler/Module/Resolvable

tests/Compiler/Module/Resolvable/Local.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,31 @@ public void GetHashCode_NeverDiffersFromModuleSpec() {
8181

8282
Assert.That(module.GetHashCode(), Is.EqualTo(module.ModuleSpec.GetHashCode()));
8383
}
84+
85+
[Test]
86+
public async Task ResolveRequirements_NormalisesWindowsSeparators() {
87+
var root = Path.Combine(TestContext.CurrentContext.WorkDirectory, "LocalModulePathSep");
88+
var commonDir = Path.Combine(root, "common");
89+
Directory.CreateDirectory(commonDir);
90+
91+
var parentPath = Path.Combine(commonDir, "Parent.psm1");
92+
var childPath = Path.Combine(commonDir, "Child.psm1");
93+
94+
await File.WriteAllTextAsync(parentPath, "Using module .\\Child.psm1");
95+
await File.WriteAllTextAsync(childPath, "function Invoke-Child {}");
96+
97+
var module = new ResolvableLocalModule(new PathedModuleSpec(root, parentPath));
98+
var result = await module.ResolveRequirements();
99+
100+
Assert.Multiple(() => {
101+
Assert.That(result, Is.EqualTo(LanguageExt.Option<Error>.None));
102+
var requirement = module.Requirements.GetRequirements<ModuleSpec>()
103+
.OfType<PathedModuleSpec>()
104+
.FirstOrDefault(r => r.FullPath == Path.GetFullPath(childPath));
105+
Assert.That(requirement, Is.Not.Null);
106+
Assert.That(requirement!.Name, Is.EqualTo("Child"));
107+
});
108+
}
84109
}
85110

86111
file static class TestData {

0 commit comments

Comments
 (0)