@@ -138,6 +138,23 @@ suite('Setup Test Suite', () => {
138138 expect ( mockExecuteCommand ) . to . be . calledWithExactly ( setInterpreterCommand )
139139 } ) . timeout ( WEBVIEW_TEST_TIMEOUT )
140140
141+ it ( 'should handle a show source control panel message from the webview' , async ( ) => {
142+ const { messageSpy, setup, mockExecuteCommand } = buildSetup ( disposable )
143+ const showScmPanelCommand = 'workbench.view.scm'
144+
145+ const webview = await setup . showWebview ( )
146+ await webview . isReady ( )
147+
148+ const mockMessageReceived = getMessageReceivedEmitter ( webview )
149+
150+ messageSpy . resetHistory ( )
151+ mockMessageReceived . fire ( {
152+ type : MessageFromWebviewType . SHOW_SCM_PANEL
153+ } )
154+
155+ expect ( mockExecuteCommand ) . to . be . calledWithExactly ( showScmPanelCommand )
156+ } ) . timeout ( WEBVIEW_TEST_TIMEOUT )
157+
141158 it ( 'should handle a setup the workspace message from the webview' , async ( ) => {
142159 const { messageSpy, setup, mockExecuteCommand } = buildSetup ( disposable )
143160
@@ -222,6 +239,7 @@ suite('Setup Test Suite', () => {
222239 cliCompatible : undefined ,
223240 hasData : false ,
224241 isPythonExtensionInstalled : false ,
242+ needsGitCommit : true ,
225243 needsGitInitialized : true ,
226244 projectInitialized : false ,
227245 pythonBinPath : undefined
@@ -258,6 +276,7 @@ suite('Setup Test Suite', () => {
258276 cliCompatible : true ,
259277 hasData : false ,
260278 isPythonExtensionInstalled : false ,
279+ needsGitCommit : true ,
261280 needsGitInitialized : true ,
262281 projectInitialized : false ,
263282 pythonBinPath : undefined
@@ -269,6 +288,7 @@ suite('Setup Test Suite', () => {
269288 disposable ,
270289 false ,
271290 true ,
291+ false ,
272292 false
273293 )
274294
@@ -299,12 +319,56 @@ suite('Setup Test Suite', () => {
299319 cliCompatible : true ,
300320 hasData : false ,
301321 isPythonExtensionInstalled : false ,
322+ needsGitCommit : false ,
302323 needsGitInitialized : false ,
303324 projectInitialized : false ,
304325 pythonBinPath : undefined
305326 } )
306327 } ) . timeout ( WEBVIEW_TEST_TIMEOUT )
307328
329+ it ( 'should send the expected message to the webview when there is no commits in the git repository' , async ( ) => {
330+ const { config, setup, messageSpy } = buildSetup (
331+ disposable ,
332+ false ,
333+ false ,
334+ false ,
335+ true
336+ )
337+
338+ await config . isReady ( )
339+
340+ setup . setCliCompatible ( true )
341+ setup . setAvailable ( true )
342+ await setup . setRoots ( )
343+
344+ messageSpy . restore ( )
345+ const mockSendMessage = stub ( BaseWebview . prototype , 'show' )
346+
347+ const messageSent = new Promise ( resolve =>
348+ mockSendMessage . callsFake ( data => {
349+ resolve ( undefined )
350+ return Promise . resolve ( ! ! data )
351+ } )
352+ )
353+
354+ const webview = await setup . showWebview ( )
355+ await webview . isReady ( )
356+
357+ await messageSent
358+
359+ expect ( mockSendMessage ) . to . be . calledOnce
360+ expect ( mockSendMessage ) . to . be . calledWithExactly ( {
361+ canGitInitialize : false ,
362+ cliCompatible : true ,
363+ hasData : false ,
364+ isPythonExtensionInstalled : false ,
365+ needsGitCommit : true ,
366+ needsGitInitialized : false ,
367+ projectInitialized : true ,
368+ pythonBinPath : undefined
369+ } )
370+ } ) . timeout ( WEBVIEW_TEST_TIMEOUT )
371+
308372 it ( 'should setup the appropriate watchers' , async ( ) => {
309373 const { setup, mockRunSetup, onDidChangeWorkspace } =
310374 await buildSetupWithWatchers ( disposable )
0 commit comments