73 lines
2.3 KiB
Go
73 lines
2.3 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
"github.com/urfave/cli/v2"
|
|
|
|
cfdflags "github.com/cloudflare/cloudflared/cmd/cloudflared/flags"
|
|
)
|
|
|
|
func TestBuildServiceFlagArgs(t *testing.T) {
|
|
cliCtx := newServiceTestContext(t)
|
|
|
|
require.NoError(t, cliCtx.Set(cfdflags.Region, "us"))
|
|
require.NoError(t, cliCtx.Set(cfdflags.EdgeIpVersion, "6"))
|
|
require.NoError(t, cliCtx.Set(cfdflags.Retries, "3"))
|
|
require.NoError(t, cliCtx.Set(cfdflags.GracePeriod, "10s"))
|
|
require.NoError(t, cliCtx.Set(cfdflags.PostQuantum, "true"))
|
|
|
|
require.Equal(t, []string{
|
|
"--region=us",
|
|
"--edge-ip-version=6",
|
|
"--retries=3",
|
|
"--grace-period=10s",
|
|
"--post-quantum=true",
|
|
}, buildServiceFlagArgs(cliCtx))
|
|
}
|
|
|
|
func TestBuildServiceRunArgsAppendsTunnelCommand(t *testing.T) {
|
|
cliCtx := newServiceTestContext(t)
|
|
|
|
require.NoError(t, cliCtx.Set(cfdflags.EdgeIpVersion, "6"))
|
|
require.NoError(t, cliCtx.Set(cfdflags.GracePeriod, "15s"))
|
|
require.NoError(t, cliCtx.Set(cfdflags.NoAutoUpdate, "true"))
|
|
require.NoError(t, cliCtx.Set(cfdflags.AutoUpdateFreq, "24h"))
|
|
|
|
got := buildServiceRunArgs(cliCtx, []string{"--config", "/etc/cloudflared/config.yml", "tunnel", "run"})
|
|
|
|
require.Equal(t, []string{
|
|
"--edge-ip-version=6",
|
|
"--grace-period=15s",
|
|
"--config", "/etc/cloudflared/config.yml", "tunnel", "run",
|
|
}, got)
|
|
}
|
|
|
|
func newServiceTestContext(t *testing.T) *cli.Context {
|
|
t.Helper()
|
|
|
|
flagSet := flag.NewFlagSet(t.Name(), flag.PanicOnError)
|
|
flagSet.String(cfdflags.Region, "", "")
|
|
flagSet.String(cfdflags.EdgeIpVersion, "", "")
|
|
flagSet.String(cfdflags.EdgeBindAddress, "", "")
|
|
flagSet.String(cfdflags.Protocol, "", "")
|
|
flagSet.Int(cfdflags.Retries, 0, "")
|
|
flagSet.String(cfdflags.LogLevel, "", "")
|
|
flagSet.String(cfdflags.TransportLogLevel, "", "")
|
|
flagSet.String(cfdflags.LogFile, "", "")
|
|
flagSet.String(cfdflags.LogDirectory, "", "")
|
|
flagSet.String(cfdflags.TraceOutput, "", "")
|
|
flagSet.String(cfdflags.Metrics, "", "")
|
|
flagSet.Duration(cfdflags.MetricsUpdateFreq, 0, "")
|
|
flagSet.Duration(cfdflags.GracePeriod, 0, "")
|
|
flagSet.Int(cfdflags.MaxActiveFlows, 0, "")
|
|
flagSet.Bool(cfdflags.PostQuantum, false, "")
|
|
flagSet.Bool(cfdflags.NoAutoUpdate, false, "")
|
|
flagSet.Duration(cfdflags.AutoUpdateFreq, 24*time.Hour, "")
|
|
|
|
return cli.NewContext(cli.NewApp(), flagSet, nil)
|
|
}
|