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);