Improve tests

This commit is contained in:
Tomaž Jerman
2019-10-16 12:47:37 +02:00
parent 298ce908c2
commit 737bd9f155
8 changed files with 101 additions and 5 deletions
+6
View File
@@ -21,4 +21,10 @@ func TestImporter_Cast(t *testing.T) {
req.Equal("Module1", i.namespaces.modules["foo"].set.FindByHandle("m1").Name)
})
impFixTester(t, "importer_with_settings", func(t *testing.T, i *Importer) {
req := require.New(t)
req.NotNil(i)
})
}
+4 -1
View File
@@ -11,6 +11,7 @@ import (
"github.com/cortezaproject/corteza-server/compose/service"
"github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/pkg/permissions"
"github.com/cortezaproject/corteza-server/pkg/settings"
)
var (
@@ -23,6 +24,7 @@ var (
// Add namespace to the stack, make sure importer can find it
pi *permissions.Importer
st *settings.Importer
imp *Importer
)
@@ -35,8 +37,9 @@ func TestMain(m *testing.M) {
func resetMocks() {
// whitelist = nil, anything can be added
pi = permissions.NewImporter(service.AccessControl(nil).Whitelist())
st = settings.NewImporter()
imp = NewImporter(nil, nil, nil, nil, nil, pi)
imp = NewImporter(nil, nil, nil, nil, nil, pi, st)
}
+8
View File
@@ -0,0 +1,8 @@
settings:
s1: v1
s2:
- v2
- v3
s3:
ss1: v4
ss2: v5
+4 -1
View File
@@ -9,11 +9,13 @@ import (
"gopkg.in/yaml.v2"
"github.com/cortezaproject/corteza-server/pkg/permissions"
"github.com/cortezaproject/corteza-server/pkg/settings"
"github.com/cortezaproject/corteza-server/system/service"
)
var (
pi *permissions.Importer
si *settings.Importer
imp *Importer
)
@@ -26,9 +28,10 @@ func TestMain(m *testing.M) {
func resetMocks() {
// whitelist = nil, anything can be added
pi = permissions.NewImporter(service.AccessControl(nil).Whitelist())
si = settings.NewImporter()
imp = NewImporter(
pi,
si,
NewChannelImport(pi, nil),
)
}
+64
View File
@@ -0,0 +1,64 @@
package settings
import (
"os"
"testing"
"github.com/jmoiron/sqlx/types"
"github.com/stretchr/testify/require"
"gopkg.in/yaml.v2"
)
func TestSettingImport_CastSet(t *testing.T) {
type tv struct {
name string
value string
}
var aux interface{}
req := require.New(t)
f, err := os.Open("testdata/settings.yaml")
defer f.Close()
req.NoError(err)
req.NoError(yaml.NewDecoder(f).Decode(&aux))
req.NotNil(aux)
imp := NewImporter()
err = imp.CastSet(aux)
req.Nil(err)
req.Len(imp.settings, 6)
tests := []tv{
tv{
name: "array",
value: "[\"v1\",\"v2\"]",
},
tv{
name: "object",
value: "{\"k1\":\"v1\",\"k2\":\"v2\"}",
},
tv{
name: "plain_b",
value: "true",
},
tv{
name: "plain_double",
value: "12.34",
},
tv{
name: "plain_double_2",
value: "12",
},
tv{
name: "plain_s",
value: "\"string\"",
},
}
for _, t := range tests {
v := imp.settings.First(t.name)
vv, _ := types.JSONText(t.value).MarshalJSON()
ee, _ := v.Value.MarshalJSON()
req.Equal(vv, ee)
}
}
+10
View File
@@ -0,0 +1,10 @@
array:
- v1
- v2
object:
k1: v1
k2: v2
plain_b: true
plain_double: 12.34
plain_double_2: 12
plain_s: string
+5 -3
View File
@@ -9,12 +9,13 @@ import (
"gopkg.in/yaml.v2"
"github.com/cortezaproject/corteza-server/pkg/permissions"
"github.com/cortezaproject/corteza-server/pkg/settings"
"github.com/cortezaproject/corteza-server/system/service"
)
var (
pi *permissions.Importer
pi *permissions.Importer
si *settings.Importer
imp *Importer
)
@@ -26,9 +27,10 @@ func TestMain(m *testing.M) {
func resetMocks() {
// whitelist = nil, anything can be added
pi = permissions.NewImporter(service.AccessControl(nil).Whitelist())
si = settings.NewImporter()
imp = NewImporter(
pi,
si,
NewRoleImport(pi, nil),
)
}