status-go/server/pairing/config_test.go

105 lines
3.3 KiB
Go

package pairing
import (
"testing"
"github.com/stretchr/testify/suite"
"gopkg.in/go-playground/validator.v9"
"github.com/google/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestConfigTestSuite(t *testing.T) {
suite.Run(t, new(ConfigTestSuite))
}
type ConfigTestSuite struct {
suite.Suite
validate *validator.Validate
}
func (s *ConfigTestSuite) SetupTest() {
var err error
s.validate, err = newValidate()
require.NoError(s.T(), err, "newValidate should not return error")
}
func (s *ConfigTestSuite) TestValidationKeystorePath() {
s.T().Run("Valid keystore path with keyUID", func(t *testing.T) {
sc := &SenderConfig{
KeystorePath: "some/path/0x130cc0ebdaecd220c1d6dea0ef01d575ef5364506785745049eb98ddf49cb54e",
DeviceType: "phone",
KeyUID: "0x130cc0ebdaecd220c1d6dea0ef01d575ef5364506785745049eb98ddf49cb54e",
Password: "password",
}
assert.NoError(t, s.validate.Struct(sc), "SenderConfig validation should pass")
})
s.T().Run("Invalid keystore path without keyUID", func(t *testing.T) {
sc := &SenderConfig{
KeystorePath: "some/path/",
DeviceType: "phone",
KeyUID: "0x130cc0ebdaecd220c1d6dea0ef01d575ef5364506785745049eb98ddf49cb54e",
Password: "password",
}
assert.Error(t, s.validate.Struct(sc), "SenderConfig validation should fail")
})
}
func (s *ConfigTestSuite) TestValidationKeyUID() {
s.T().Run("Valid keyUID", func(t *testing.T) {
sc := &SenderConfig{
KeystorePath: "some/path/0x130cc0ebdaecd220c1d6dea0ef01d575ef5364506785745049eb98ddf49cb54e",
DeviceType: "phone",
KeyUID: "0x130cc0ebdaecd220c1d6dea0ef01d575ef5364506785745049eb98ddf49cb54e",
Password: "password",
}
assert.NoError(t, s.validate.Struct(sc), "SenderConfig validation should pass")
})
s.T().Run("Invalid keyUID", func(t *testing.T) {
sc := &SenderConfig{
KeystorePath: "some/path/0x130cc0ebdaecd220c1d6dea0ef01d575ef5364506785745049eb98ddf49cb54e",
DeviceType: "phone",
KeyUID: "0x130cc0ebdaecd220c1d6dea0ef01d575ef5364506785745049eb98ddf49cb54",
Password: "password",
}
assert.Error(t, s.validate.Struct(sc), "SenderConfig validation should fail")
})
}
func (s *ConfigTestSuite) TestValidationNotEndKeyUID() {
nodeConfig, err := nodeConfigForLocalPairSync(uuid.New().String(), "", "/dummy/path")
nodeConfig.RootDataDir = "/tmp"
require.NoError(s.T(), err, "nodeConfigForLocalPairSync should not return error")
s.T().Run("Valid keystore path without keyUID", func(t *testing.T) {
r := &ReceiverConfig{
NodeConfig: nodeConfig,
KeystorePath: "some/path/",
DeviceType: "phone",
KDFIterations: 1,
SettingCurrentNetwork: "mainnet",
}
assert.NoError(t, setDefaultNodeConfig(r.NodeConfig))
assert.NoError(t, validateAndVerifyNodeConfig(r, r), "ReceiverConfig validation should pass")
})
s.T().Run("Invalid keystore path with keyUID", func(t *testing.T) {
r := &ReceiverConfig{
NodeConfig: nodeConfig,
KeystorePath: "some/path/0x130cc0ebdaecd220c1d6dea0ef01d575ef5364506785745049eb98ddf49cb54e",
DeviceType: "phone",
KDFIterations: 1,
SettingCurrentNetwork: "mainnet",
}
assert.NoError(t, setDefaultNodeConfig(r.NodeConfig))
assert.Error(t, validateAndVerifyNodeConfig(r, r), "ReceiverConfig validation should fail")
})
}