@@ -361,6 +361,34 @@ func TestQueryAndExit(t *testing.T) {
361361 }
362362}
363363
364+ func TestInitQueryAndQueryExecutesQuery (t * testing.T ) {
365+ defer func () {
366+ if r := recover (); r != nil {
367+ t .Errorf ("Panic occurred: %v" , r )
368+ }
369+ }()
370+ o , err := os .CreateTemp ("" , "sqlcmdmain" )
371+ assert .NoError (t , err , "os.CreateTemp" )
372+ defer os .Remove (o .Name ())
373+ defer o .Close ()
374+ args = newArguments ()
375+ args .InitialQuery = "SELECT 1"
376+ args .Query = "SELECT 2"
377+ args .OutputFile = o .Name ()
378+ vars := sqlcmd .InitializeVariables (args .useEnvVars ())
379+ vars .Set (sqlcmd .SQLCMDMAXVARTYPEWIDTH , "0" )
380+
381+ setVars (vars , & args )
382+
383+ exitCode , err := run (vars , & args )
384+ assert .NoError (t , err , "run" )
385+ assert .Equal (t , 0 , exitCode , "exitCode" )
386+ bytes , err := os .ReadFile (o .Name ())
387+ if assert .NoError (t , err , "os.ReadFile" ) {
388+ assert .Equal (t , "2" + sqlcmd .SqlcmdEol + sqlcmd .SqlcmdEol + oneRowAffected + sqlcmd .SqlcmdEol , string (bytes ), "Incorrect output from run" )
389+ }
390+ }
391+
364392// Test to verify fix for issue: https://github.com/microsoft/go-sqlcmd/issues/98
365393// 1. Verify when -b is passed in (ExitOnError), we don't always get an error (even when input is good)
366394// 2, Verify when the input is actually bad, we do get an error
0 commit comments