From f68d543cded4ae023f7faffd9457f16ba63a6913 Mon Sep 17 00:00:00 2001 From: Phil Asmar Date: Fri, 18 Jul 2025 09:27:05 -0400 Subject: [PATCH] fix: stop copying test tool static assets manually --- .../Amazon.Lambda.TestTool.csproj | 4 -- .../PackagingTests.cs | 69 ++++++++++++++++++- .../Utilities/DirectoryHelpers.cs | 2 +- 3 files changed, 69 insertions(+), 6 deletions(-) diff --git a/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj b/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj index 546ec3a84..d8e87b598 100644 --- a/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj +++ b/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj @@ -21,10 +21,6 @@ README.md - - - - diff --git a/Tools/LambdaTestTool-v2/tests/Amazon.Lambda.TestTool.UnitTests/PackagingTests.cs b/Tools/LambdaTestTool-v2/tests/Amazon.Lambda.TestTool.UnitTests/PackagingTests.cs index 7d47bf3ab..0402506fa 100644 --- a/Tools/LambdaTestTool-v2/tests/Amazon.Lambda.TestTool.UnitTests/PackagingTests.cs +++ b/Tools/LambdaTestTool-v2/tests/Amazon.Lambda.TestTool.UnitTests/PackagingTests.cs @@ -18,11 +18,78 @@ public PackagingTests(ITestOutputHelper output) _workingDirectory = DirectoryHelpers.GetTempTestAppDirectory(solutionRoot); } + [Fact] + public void VerifyPackageContentsHasStaticAssets() + { + var projectPath = Path.Combine(_workingDirectory, "Tools", "LambdaTestTool-v2", "src", "Amazon.Lambda.TestTool", "Amazon.Lambda.TestTool.csproj"); + _output.WriteLine("Packing TestTool..."); + var packProcess = new Process + { + StartInfo = new ProcessStartInfo + { + FileName = "dotnet", + Arguments = $"pack -c Release --no-build --no-restore {projectPath}", + RedirectStandardOutput = true, + RedirectStandardError = true, + UseShellExecute = false, + CreateNoWindow = true, + } + }; + + packProcess.Start(); + string packOutput = packProcess.StandardOutput.ReadToEnd(); + string packError = packProcess.StandardError.ReadToEnd(); + packProcess.WaitForExit(int.MaxValue); + + _output.WriteLine("Pack Output:"); + _output.WriteLine(packOutput); + if (!string.IsNullOrEmpty(packError)) + { + _output.WriteLine("Pack Errors:"); + _output.WriteLine(packError); + } + + Assert.Equal(0, packProcess.ExitCode); + + var packageDir = Path.Combine(Path.GetDirectoryName(projectPath)!, "bin", "Release"); + _output.WriteLine($"Looking for package in: {packageDir}"); + + var packageFiles = Directory.GetFiles(packageDir, "*.nupkg", SearchOption.AllDirectories); + Assert.True(packageFiles.Length > 0, $"No .nupkg files found in {packageDir}"); + + var packagePath = packageFiles[0]; + _output.WriteLine($"Found package: {packagePath}"); + + using var archive = ZipFile.OpenRead(packagePath); + + // Get all files for this framework + var frameworkFiles = archive.Entries + .Where(e => e.FullName.StartsWith($"tools/net8.0/any/wwwroot")) + .Select(e => e.FullName) + .ToList(); + + // Verify essential files exist + var essentialFiles = new[] + { + $"tools/net8.0/any/wwwroot/bootstrap-icons/", + $"tools/net8.0/any/wwwroot/bootstrap/", + $"tools/net8.0/any/wwwroot/_content/BlazorMonaco/" + }; + + var missingFiles = essentialFiles.Where(f => !frameworkFiles.Any(x => x.StartsWith(f))).ToList(); + + if (missingFiles.Any()) + { + Assert.Fail($"The following static assets are missing:\n" + + string.Join("\n", missingFiles)); + } + } + [Fact] public void VerifyPackageContentsHasRuntimeSupport() { var projectPath = Path.Combine(_workingDirectory, "Tools", "LambdaTestTool-v2", "src", "Amazon.Lambda.TestTool", "Amazon.Lambda.TestTool.csproj"); - var expectedFrameworks = new string[] { "net6.0", "net8.0", "net9.0" }; + var expectedFrameworks = new string[] { "net6.0", "net8.0", "net9.0", "net10.0" }; _output.WriteLine("Packing TestTool..."); var packProcess = new Process { diff --git a/Tools/LambdaTestTool-v2/tests/Amazon.Lambda.TestTool.UnitTests/Utilities/DirectoryHelpers.cs b/Tools/LambdaTestTool-v2/tests/Amazon.Lambda.TestTool.UnitTests/Utilities/DirectoryHelpers.cs index 6599cf13d..9303cd590 100644 --- a/Tools/LambdaTestTool-v2/tests/Amazon.Lambda.TestTool.UnitTests/Utilities/DirectoryHelpers.cs +++ b/Tools/LambdaTestTool-v2/tests/Amazon.Lambda.TestTool.UnitTests/Utilities/DirectoryHelpers.cs @@ -63,7 +63,7 @@ private static void CopyDirectory(DirectoryInfo dir, string destDirName) File.SetAttributes(tempPath, FileAttributes.Normal); } - foreach (var subdir in dirs.Where(x => !x.Name.Equals(".git"))) + foreach (var subdir in dirs.Where(x => !x.Name.Equals(".git") && !x.Name.Equals(".vs"))) { var tempPath = Path.Combine(destDirName, subdir.Name); var subDir = new DirectoryInfo(subdir.FullName);