2022-03-31 14:56:22 +03:00
// Copyright 2022 The Gitea Authors. All rights reserved.
2019-03-27 12:33:00 +03:00
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package git
import (
"context"
"testing"
2022-03-31 14:56:22 +03:00
"github.com/stretchr/testify/assert"
)
2019-03-27 12:33:00 +03:00
2022-03-31 14:56:22 +03:00
func TestRunWithContextStd ( t * testing . T ) {
2022-02-06 22:01:47 +03:00
cmd := NewCommand ( context . Background ( ) , "--version" )
2022-04-01 05:55:30 +03:00
stdout , stderr , err := cmd . RunStdString ( & RunOpts { } )
2022-03-31 14:56:22 +03:00
assert . NoError ( t , err )
assert . Empty ( t , stderr )
assert . Contains ( t , stdout , "git version" )
2019-03-27 12:33:00 +03:00
2022-03-31 14:56:22 +03:00
cmd = NewCommand ( context . Background ( ) , "--no-such-arg" )
2022-04-01 05:55:30 +03:00
stdout , stderr , err = cmd . RunStdString ( & RunOpts { } )
2022-03-31 14:56:22 +03:00
if assert . Error ( t , err ) {
assert . Equal ( t , stderr , err . Stderr ( ) )
assert . Contains ( t , err . Stderr ( ) , "unknown option:" )
assert . Contains ( t , err . Error ( ) , "exit status 129 - unknown option:" )
assert . Empty ( t , stdout )
2019-03-27 12:33:00 +03:00
}
2022-10-15 13:49:26 +03:00
2022-10-15 15:18:31 +03:00
cmd = NewCommand ( context . Background ( ) )
cmd . AddDynamicArguments ( "-test" )
assert . ErrorIs ( t , cmd . Run ( & RunOpts { } ) , ErrBrokenCommand )
cmd = NewCommand ( context . Background ( ) )
cmd . AddDynamicArguments ( "--test" )
assert . ErrorIs ( t , cmd . Run ( & RunOpts { } ) , ErrBrokenCommand )
2022-10-15 13:49:26 +03:00
subCmd := "version"
cmd = NewCommand ( context . Background ( ) ) . AddDynamicArguments ( subCmd ) // for test purpose only, the sub-command should never be dynamic for production
stdout , stderr , err = cmd . RunStdString ( & RunOpts { } )
assert . NoError ( t , err )
assert . Empty ( t , stderr )
assert . Contains ( t , stdout , "git version" )
2019-03-27 12:33:00 +03:00
}