mirror of https://github.com/statping/statping
				
				
				
			
		
			
				
	
	
		
			125 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	"github.com/statping-ng/statping-ng/source"
 | 
						|
	"github.com/statping-ng/statping-ng/utils"
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
	"github.com/stretchr/testify/require"
 | 
						|
	"io/ioutil"
 | 
						|
	"os"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
var (
 | 
						|
	dir string
 | 
						|
)
 | 
						|
 | 
						|
func init() {
 | 
						|
	utils.InitLogs()
 | 
						|
}
 | 
						|
 | 
						|
func TestStatpingDirectory(t *testing.T) {
 | 
						|
	dir = utils.Params.GetString("STATPING_DIR")
 | 
						|
	require.NotContains(t, dir, "/cmd")
 | 
						|
	require.NotEmpty(t, dir)
 | 
						|
}
 | 
						|
 | 
						|
func TestEnvCLI(t *testing.T) {
 | 
						|
	os.Setenv("API_SECRET", "demoapisecret123")
 | 
						|
	os.Setenv("SASS", "/usr/local/bin/sass")
 | 
						|
 | 
						|
	cmd := rootCmd
 | 
						|
	b := bytes.NewBufferString("")
 | 
						|
	cmd.SetOut(b)
 | 
						|
	cmd.SetArgs([]string{"env"})
 | 
						|
	err := cmd.Execute()
 | 
						|
	require.Nil(t, err)
 | 
						|
	out, err := ioutil.ReadAll(b)
 | 
						|
	require.Nil(t, err)
 | 
						|
	assert.Contains(t, string(out), VERSION)
 | 
						|
	assert.Contains(t, utils.Directory, string(out))
 | 
						|
	assert.Contains(t, "SAMPLE_DATA=true", string(out))
 | 
						|
	assert.Contains(t, "API_SECRET=demoapisecret123", string(out))
 | 
						|
	assert.Contains(t, "STATPING_DIR="+dir, string(out))
 | 
						|
	assert.Contains(t, "SASS=/usr/local/bin/sass", string(out))
 | 
						|
 | 
						|
	os.Unsetenv("API_SECRET")
 | 
						|
	os.Unsetenv("SASS")
 | 
						|
}
 | 
						|
 | 
						|
func TestVersionCLI(t *testing.T) {
 | 
						|
	cmd := rootCmd
 | 
						|
	b := bytes.NewBufferString("")
 | 
						|
	cmd.SetOut(b)
 | 
						|
	cmd.SetArgs([]string{"version"})
 | 
						|
	err := cmd.Execute()
 | 
						|
	require.Nil(t, err)
 | 
						|
	out, err := ioutil.ReadAll(b)
 | 
						|
	require.Nil(t, err)
 | 
						|
	assert.Contains(t, VERSION, string(out))
 | 
						|
}
 | 
						|
 | 
						|
func TestAssetsCLI(t *testing.T) {
 | 
						|
	cmd := rootCmd
 | 
						|
	b := bytes.NewBufferString("")
 | 
						|
	cmd.SetOut(b)
 | 
						|
	cmd.SetArgs([]string{"assets"})
 | 
						|
	err := cmd.Execute()
 | 
						|
	require.Nil(t, err)
 | 
						|
	out, err := ioutil.ReadAll(b)
 | 
						|
	assert.Nil(t, err)
 | 
						|
	assert.Contains(t, string(out), VERSION)
 | 
						|
	for _, f := range source.RequiredFiles {
 | 
						|
		assert.FileExists(t, utils.Directory+"/assets/"+f)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestUpdateCLI(t *testing.T) {
 | 
						|
	cmd := rootCmd
 | 
						|
	b := bytes.NewBufferString("")
 | 
						|
	cmd.SetOut(b)
 | 
						|
	cmd.SetArgs([]string{"update"})
 | 
						|
	err := cmd.Execute()
 | 
						|
	require.Nil(t, err)
 | 
						|
	out, err := ioutil.ReadAll(b)
 | 
						|
	require.Nil(t, err)
 | 
						|
	assert.Contains(t, string(out), VERSION)
 | 
						|
}
 | 
						|
 | 
						|
func TestHelpCLI(t *testing.T) {
 | 
						|
	cmd := rootCmd
 | 
						|
	b := bytes.NewBufferString("")
 | 
						|
	cmd.SetOut(b)
 | 
						|
	cmd.SetArgs([]string{"help"})
 | 
						|
	err := cmd.Execute()
 | 
						|
	require.Nil(t, err)
 | 
						|
	out, err := ioutil.ReadAll(b)
 | 
						|
	require.Nil(t, err)
 | 
						|
	assert.Contains(t, string(out), VERSION)
 | 
						|
}
 | 
						|
 | 
						|
func TestResetCLI(t *testing.T) {
 | 
						|
	err := utils.SaveFile(utils.Directory+"/statping.db", []byte("test data"))
 | 
						|
	require.Nil(t, err)
 | 
						|
 | 
						|
	cmd := rootCmd
 | 
						|
	b := bytes.NewBufferString("")
 | 
						|
	cmd.SetOut(b)
 | 
						|
	cmd.SetArgs([]string{"reset"})
 | 
						|
	err = cmd.Execute()
 | 
						|
	require.Nil(t, err)
 | 
						|
	out, err := ioutil.ReadAll(b)
 | 
						|
	require.Nil(t, err)
 | 
						|
	assert.Contains(t, string(out), VERSION)
 | 
						|
 | 
						|
	assert.NoDirExists(t, utils.Directory+"/assets")
 | 
						|
	assert.NoDirExists(t, utils.Directory+"/logs")
 | 
						|
	assert.NoFileExists(t, utils.Directory+"/config.yml")
 | 
						|
	assert.NoFileExists(t, utils.Directory+"/statping.db")
 | 
						|
	assert.FileExists(t, utils.Directory+"/statping.db.backup")
 | 
						|
 | 
						|
	err = utils.DeleteFile(utils.Directory + "/statping.db.backup")
 | 
						|
	require.Nil(t, err)
 | 
						|
}
 |