@@ -361,6 +361,34 @@ func TestQueryAndExit(t *testing.T) {
361
361
}
362
362
}
363
363
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
+
364
392
// Test to verify fix for issue: https://github.com/microsoft/go-sqlcmd/issues/98
365
393
// 1. Verify when -b is passed in (ExitOnError), we don't always get an error (even when input is good)
366
394
// 2, Verify when the input is actually bad, we do get an error
0 commit comments