more test cleanup

This commit is contained in:
Roland Osborne 2022-01-17 14:25:39 -08:00
parent a301061c27
commit 6aac0c9602
4 changed files with 36 additions and 68 deletions

View File

@ -3,6 +3,7 @@ module databag
go 1.17
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/gorilla/websocket v1.4.2 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
@ -10,9 +11,12 @@ require (
github.com/kr/pretty v0.3.0 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/mattn/go-sqlite3 v1.14.9 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rogpeppe/go-internal v1.6.1 // indirect
github.com/stretchr/testify v1.7.0 // indirect
github.com/theckman/go-securerandom v0.1.1 // indirect
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 // indirect
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
gorm.io/driver/sqlite v1.2.6 // indirect
gorm.io/gorm v1.22.4 // indirect
)

View File

@ -1,5 +1,6 @@
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
@ -19,10 +20,12 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/mattn/go-sqlite3 v1.14.9 h1:10HX2Td0ocZpYEjhilsuo6WWtUqttj2Kb0KtD86/KYA=
github.com/mattn/go-sqlite3 v1.14.9/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/theckman/go-securerandom v0.1.1 h1:5KctSyM0D5KKFK+bsypIyLq7yik0CEaI5i2fGcUGcsQ=
github.com/theckman/go-securerandom v0.1.1/go.mod h1:bmkysLfBH6i891sBpcP4xRM3XIB7jMeiKJB31jlResI=
@ -31,6 +34,7 @@ golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gorm.io/driver/sqlite v1.2.6 h1:SStaH/b+280M7C8vXeZLz/zo9cLQmIGwwj3cSj7p6l4=
gorm.io/driver/sqlite v1.2.6/go.mod h1:gyoX0vHiiwi0g49tv+x2E7l8ksauLK0U/gShcdUsjWY=

View File

@ -2,6 +2,7 @@ package databag
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestAddAccount(t *testing.T) {
@ -11,34 +12,22 @@ func TestAddAccount(t *testing.T) {
SetBasicAuth(r, "admin:pass");
AddNodeAccount(w, r)
var token string
if ReadResponse(w, &token) != nil {
t.Errorf("failed to create token");
return
}
assert.NoError(t, ReadResponse(w, &token))
// validate account token
r, w, _ = NewRequest("GET", "/account/token", nil)
SetBearerAuth(r, token)
GetAccountToken(w, r)
var tokenType string
if ReadResponse(w, &tokenType) != nil {
t.Errorf("failed to validate token")
return
}
assert.NoError(t, ReadResponse(w, &tokenType))
// check if username is available
r, w, _ = NewRequest("GET", "/account/claimable?username=user", nil)
SetBearerAuth(r, token)
GetAccountUsername(w, r)
var available bool
if ReadResponse(w, &available) != nil {
t.Errorf("failed to check username")
return
}
if !available {
t.Errorf("username not available")
return
}
assert.NoError(t, ReadResponse(w, &available))
assert.True(t, available)
// create account
r, w, _ = NewRequest("GET", "/account/profile", nil)
@ -46,41 +35,25 @@ func TestAddAccount(t *testing.T) {
SetBearerAuth(r, token)
AddAccount(w, r)
var profile Profile
if ReadResponse(w, &profile) != nil {
t.Errorf("failed to create account")
return
}
assert.NoError(t, ReadResponse(w, &profile))
// acquire new token for creating accounts
r, w, _ = NewRequest("POST", "/admin/accounts", nil)
SetBasicAuth(r, "admin:pass")
AddNodeAccount(w, r)
if ReadResponse(w, &token) != nil {
t.Errorf("failed to create token")
return
}
assert.NoError(t, ReadResponse(w, &token))
// check if dup is available
r, w, _ = NewRequest("GET", "/account/claimable?username=user", nil)
SetBearerAuth(r, token)
GetAccountUsername(w, r)
if ReadResponse(w, &available) != nil {
t.Errorf("failed to check username")
return
}
if available {
t.Errorf("username duplicate available")
return
}
assert.NoError(t, ReadResponse(w, &available))
assert.False(t, available);
// create dup account
r, w, _ = NewRequest("GET", "/account/profile", nil)
SetCredentials(r, "user:pass")
SetBearerAuth(r, token);
AddAccount(w, r)
if ReadResponse(w, &profile) == nil {
t.Errorf("duplicate handle set")
return
}
assert.Error(t, ReadResponse(w, &profile))
}

View File

@ -11,79 +11,66 @@ func TestMain(m *testing.M) {
store.SetPath("file::memory:?cache=shared");
//store.SetPath("databag.db");
Claimable();
Claim();
SetConfig();
GetConfig();
token := SetToken()
SetAccount(token)
m.Run()
}
func Claimable() {
r, w, _ := NewRequest("GET", "/admin/claimable", nil)
GetNodeClaimable(w, r)
var available bool
if ReadResponse(w, &available) != nil {
panic("server not claimable")
}
}
func Claim() {
r, w, _ := NewRequest("PUT", "/admin/claim", nil)
// claim server
r, w, _ = NewRequest("PUT", "/admin/claim", nil)
SetCredentials(r, "admin:pass");
SetNodeClaim(w, r)
if ReadResponse(w, nil) != nil {
panic("failed to claim server")
}
}
func SetConfig() {
// config server
config := NodeConfig{Domain: "example.com", PublicLimit: 1024, AccountStorage: 4096}
r, w, _ := NewRequest("PUT", "/admin/config", &config)
r, w, _ = NewRequest("PUT", "/admin/config", &config)
SetBasicAuth(r, "admin:pass")
SetNodeConfig(w, r)
if ReadResponse(w, nil) != nil {
panic("failed to set config")
}
}
func GetConfig() {
r, w, _ := NewRequest("GET", "/admin/config", nil)
// check config
r, w, _ = NewRequest("GET", "/admin/config", nil)
SetBasicAuth(r, "admin:pass")
GetNodeConfig(w, r)
var config NodeConfig
if ReadResponse(w, &config) != nil {
var check NodeConfig
if ReadResponse(w, &check) != nil {
panic("failed to get node config")
}
if config.Domain != "example.com" {
if check.Domain != "example.com" {
panic("failed to set config domain");
}
if config.PublicLimit != 1024 {
if check.PublicLimit != 1024 {
panic("failed to set public limit");
}
if config.AccountStorage != 4096 {
if check.AccountStorage != 4096 {
panic("failed to set account storage");
}
}
func SetToken() string {
r, w, _ := NewRequest("POST", "/admin/accounts", nil)
// get account token
r, w, _ = NewRequest("POST", "/admin/accounts", nil)
SetBasicAuth(r, "admin:pass")
AddNodeAccount(w, r)
var token string
if ReadResponse(w, &token) != nil {
panic("failed to create token")
}
return token
}
func SetAccount(token string) {
r, w, _ := NewRequest("GET", "/account/profile", nil)
// set account profile
r, w, _ = NewRequest("GET", "/account/profile", nil)
SetBearerAuth(r, token);
SetCredentials(r, "test:pass")
AddAccount(w, r)
if ReadResponse(w, nil) != nil {
panic("failed to create account")
}
m.Run()
}