using StellaOps.Scanner.Analyzers.Lang.Deno.Internal.Runtime; namespace StellaOps.Scanner.Analyzers.Lang.Deno.Tests.Deno; public sealed class DenoRuntimePathHasherTests { [Fact] public void ProducesNormalizedRelativePathAndStableHash() { var root = TestPaths.CreateTemporaryDirectory(); try { var absolute = Path.Combine(root, "subdir", "main.ts"); Directory.CreateDirectory(Path.GetDirectoryName(absolute)!); File.WriteAllText(absolute, "// sample"); var identity = DenoRuntimePathHasher.Create(root, absolute); Assert.Equal("subdir/main.ts", identity.Normalized); Assert.Equal("c3b59fd8169cee9cc111b4737e733f8c0227403717e04f37cba870c49c7ff2c3", identity.PathSha256); } finally { TestPaths.SafeDelete(root); } } [Fact] public void UsesDotForRootPath() { var root = TestPaths.CreateTemporaryDirectory(); try { var identity = DenoRuntimePathHasher.Create(root, root); Assert.Equal(".", identity.Normalized); Assert.Equal("cdb4ee2aea69cc6a83331bbe96dc2caa9a299d21329efb0336fc02a82e1839a8", identity.PathSha256); } finally { TestPaths.SafeDelete(root); } } }