neoneo-go/cli/options/options_test.go
AnnaShaleva 670af050ee cli: fix TestGetTimeoutContext test
Problem:
```
--- FAIL: TestGetTimeoutContext (0.00s)
    --- FAIL: TestGetTimeoutContext/default (0.00s)
        options_test.go:44:
                Error Trace:    options_test.go:44
                Error:          Should be true
                Test:           TestGetTimeoutContext/default
    --- FAIL: TestGetTimeoutContext/set (0.00s)
        options_test.go:55:
                Error Trace:    options_test.go:55
                Error:          Should be true
                Test:           TestGetTimeoutContext/set
FAIL
```

Solution:
Allow deadline be equal to expected end time.
2021-11-18 17:35:15 +03:00

57 lines
1.6 KiB
Go

package options
import (
"flag"
"testing"
"time"
"github.com/nspcc-dev/neo-go/pkg/config/netmode"
"github.com/stretchr/testify/require"
"github.com/urfave/cli"
)
func TestGetNetwork(t *testing.T) {
t.Run("privnet", func(t *testing.T) {
set := flag.NewFlagSet("flagSet", flag.ExitOnError)
ctx := cli.NewContext(cli.NewApp(), set, nil)
require.Equal(t, netmode.PrivNet, GetNetwork(ctx))
})
t.Run("testnet", func(t *testing.T) {
set := flag.NewFlagSet("flagSet", flag.ExitOnError)
set.Bool("testnet", true, "")
ctx := cli.NewContext(cli.NewApp(), set, nil)
require.Equal(t, netmode.TestNet, GetNetwork(ctx))
})
t.Run("mainnet", func(t *testing.T) {
set := flag.NewFlagSet("flagSet", flag.ExitOnError)
set.Bool("mainnet", true, "")
ctx := cli.NewContext(cli.NewApp(), set, nil)
require.Equal(t, netmode.MainNet, GetNetwork(ctx))
})
}
func TestGetTimeoutContext(t *testing.T) {
t.Run("default", func(t *testing.T) {
start := time.Now()
set := flag.NewFlagSet("flagSet", flag.ExitOnError)
ctx := cli.NewContext(cli.NewApp(), set, nil)
actualCtx, _ := GetTimeoutContext(ctx)
end := time.Now().Add(DefaultTimeout)
dl, _ := actualCtx.Deadline()
require.True(t, start.Before(dl) && (dl.Before(end) || dl.Equal(end)))
})
t.Run("set", func(t *testing.T) {
start := time.Now()
set := flag.NewFlagSet("flagSet", flag.ExitOnError)
set.Duration("timeout", time.Duration(20), "")
ctx := cli.NewContext(cli.NewApp(), set, nil)
actualCtx, _ := GetTimeoutContext(ctx)
end := time.Now().Add(time.Nanosecond * 20)
dl, _ := actualCtx.Deadline()
require.True(t, start.Before(dl) && (dl.Before(end) || dl.Equal(end)))
})
}