@@ -90,6 +90,36 @@ public async Task BlazorWasmHostedTemplate_Works()
90
90
}
91
91
}
92
92
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
+
93
123
protected async Task BuildAndRunTest ( string appName , Project project )
94
124
{
95
125
using var aspNetProcess = project . StartBuiltProjectAsync ( ) ;
0 commit comments