Skip to content

Commit 251ca60

Browse files
Add publishing test for PWA template
1 parent 43b308e commit 251ca60

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/ProjectTemplates/test/BlazorWasmTemplateTest.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,36 @@ public async Task BlazorWasmHostedTemplate_Works()
9090
}
9191
}
9292

93+
[Fact]
94+
public async Task BlazorWasmPwaTemplate_Works()
95+
{
96+
var project = await ProjectFactory.GetOrCreateProject("blazorpwa", Output);
97+
project.TargetFramework = "netstandard2.1";
98+
99+
var createResult = await project.RunDotNetNewAsync("blazorwasm", args: new[] { "--pwa" });
100+
Assert.True(0 == createResult.ExitCode, ErrorMessages.GetFailedProcessMessage("create/restore", project, createResult));
101+
102+
var publishResult = await project.RunDotNetPublishAsync();
103+
Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", project, publishResult));
104+
105+
var buildResult = await project.RunDotNetBuildAsync();
106+
Assert.True(0 == buildResult.ExitCode, ErrorMessages.GetFailedProcessMessage("build", project, buildResult));
107+
108+
await BuildAndRunTest(project.ProjectName, project);
109+
110+
var publishDir = Path.Combine(project.TemplatePublishDir, project.ProjectName, "dist");
111+
AspNetProcess.EnsureDevelopmentCertificates();
112+
113+
Output.WriteLine("Running dotnet serve on published output...");
114+
using var serveProcess = ProcessEx.Run(Output, publishDir, DotNetMuxer.MuxerPathOrDefault(), "serve -S");
115+
116+
// Todo: Use dynamic port assignment: https://github.com/natemcmaster/dotnet-serve/pull/40/files
117+
var listeningUri = "https://localhost:8080";
118+
Output.WriteLine($"Opening browser at {listeningUri}...");
119+
Browser.Navigate().GoToUrl(listeningUri);
120+
TestBasicNavigation(project.ProjectName);
121+
}
122+
93123
protected async Task BuildAndRunTest(string appName, Project project)
94124
{
95125
using var aspNetProcess = project.StartBuiltProjectAsync();

0 commit comments

Comments
 (0)