snapshot of https://github.com/cortezaproject/corteza.git (2024.9.x, 2026-09-18; blobs > 131072B omitted)
Some checks failed
SonarQube / SonarQube (push) Failing after 5m28s
E2e test on main branch push / server and client test (map[name:admin port:8080]) (push) Failing after 3m33s
Server and lib tests / Library test (js) (push) Failing after 1m36s
Server and lib tests / Library test (vue) (push) Successful in 2m24s
Server and lib tests / Web client test (admin) (push) Successful in 2m52s
Server and lib tests / Web client test (compose) (push) Successful in 3m23s
Server and lib tests / Web client test (discovery) (push) Successful in 2m49s
Server and lib tests / Web client test (one) (push) Successful in 2m52s
Server and lib tests / Web client test (privacy) (push) Successful in 2m44s
Server and lib tests / Web client test (reporter) (push) Successful in 2m56s
Server and lib tests / Web client test (workflow) (push) Successful in 3m0s
Server and lib tests / Server tests (push) Failing after 4m55s
E2e test on main branch push / notify-failure (push) Failing after 9s
Server and lib tests / Send matrix testing notification (push) Successful in 2s
Mark stale issues and pull requests / stale (push) Successful in 40s
Some checks failed
SonarQube / SonarQube (push) Failing after 5m28s
E2e test on main branch push / server and client test (map[name:admin port:8080]) (push) Failing after 3m33s
Server and lib tests / Library test (js) (push) Failing after 1m36s
Server and lib tests / Library test (vue) (push) Successful in 2m24s
Server and lib tests / Web client test (admin) (push) Successful in 2m52s
Server and lib tests / Web client test (compose) (push) Successful in 3m23s
Server and lib tests / Web client test (discovery) (push) Successful in 2m49s
Server and lib tests / Web client test (one) (push) Successful in 2m52s
Server and lib tests / Web client test (privacy) (push) Successful in 2m44s
Server and lib tests / Web client test (reporter) (push) Successful in 2m56s
Server and lib tests / Web client test (workflow) (push) Successful in 3m0s
Server and lib tests / Server tests (push) Failing after 4m55s
E2e test on main branch push / notify-failure (push) Failing after 9s
Server and lib tests / Send matrix testing notification (push) Successful in 2s
Mark stale issues and pull requests / stale (push) Successful in 40s
This commit is contained in:
100
server/compose/service/chart_test.go
Normal file
100
server/compose/service/chart_test.go
Normal file
@@ -0,0 +1,100 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cortezaproject/corteza/server/pkg/rbac"
|
||||
"github.com/cortezaproject/corteza/server/store/adapters/rdbms/drivers/sqlite"
|
||||
|
||||
"github.com/cortezaproject/corteza/server/compose/types"
|
||||
"github.com/cortezaproject/corteza/server/pkg/errors"
|
||||
"github.com/cortezaproject/corteza/server/store"
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func TestCharts(t *testing.T) {
|
||||
var (
|
||||
ctx = context.Background()
|
||||
s, err = sqlite.ConnectInMemory(ctx)
|
||||
|
||||
namespaceID = nextID()
|
||||
ns *types.Namespace
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("failed to init sqlite in-memory db: %v", err)
|
||||
}
|
||||
|
||||
if err = store.Upgrade(ctx, zap.NewNop(), s); err != nil {
|
||||
t.Fatalf("failed to upgrade store: %v", err)
|
||||
}
|
||||
|
||||
if err = s.TruncateComposeNamespaces(ctx); err != nil {
|
||||
t.Fatalf("failed to truncate compose namespaces: %v", err)
|
||||
}
|
||||
|
||||
if err = s.TruncateComposeCharts(ctx); err != nil {
|
||||
t.Fatalf("failed to truncate compose charts: %v", err)
|
||||
}
|
||||
|
||||
ns = &types.Namespace{Name: "testing", ID: namespaceID, CreatedAt: *now()}
|
||||
if err = store.CreateComposeNamespace(ctx, s, ns); err != nil {
|
||||
t.Fatalf("failed to seed namespaces: %v", err)
|
||||
}
|
||||
|
||||
t.Run("crud", func(t *testing.T) {
|
||||
req := require.New(t)
|
||||
svc := &chart{
|
||||
store: s,
|
||||
ac: &accessControl{rbac: &rbac.ServiceAllowAll{}},
|
||||
}
|
||||
res, err := svc.Create(ctx, &types.Chart{Name: "My first chart", NamespaceID: namespaceID})
|
||||
req.NoError(unwrapChartInternal(err))
|
||||
req.NotNil(res)
|
||||
|
||||
res, err = svc.FindByID(ctx, namespaceID, res.ID)
|
||||
req.NoError(unwrapChartInternal(err))
|
||||
req.NotNil(res)
|
||||
|
||||
res, err = svc.FindByHandle(ctx, namespaceID, res.Handle)
|
||||
req.NoError(unwrapChartInternal(err))
|
||||
req.NotNil(res)
|
||||
|
||||
res.Name = "Changed"
|
||||
res, err = svc.Update(ctx, res)
|
||||
req.NoError(unwrapChartInternal(err))
|
||||
req.NotNil(res)
|
||||
req.NotNil(res.UpdatedAt)
|
||||
req.Equal(res.Name, "Changed")
|
||||
|
||||
res, err = svc.FindByID(ctx, namespaceID, res.ID)
|
||||
req.NoError(unwrapChartInternal(err))
|
||||
req.NotNil(res)
|
||||
req.Equal(res.Name, "Changed")
|
||||
|
||||
err = svc.DeleteByID(ctx, namespaceID, res.ID)
|
||||
req.NoError(unwrapChartInternal(err))
|
||||
req.NotNil(res)
|
||||
|
||||
// this works because we're allowed to do everything
|
||||
res, err = svc.FindByID(ctx, namespaceID, res.ID)
|
||||
req.NoError(unwrapChartInternal(err))
|
||||
req.NotNil(res)
|
||||
req.NotNil(res.DeletedAt)
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
func unwrapChartInternal(err error) error {
|
||||
g := ChartErrGeneric()
|
||||
for {
|
||||
if errors.Is(err, g) {
|
||||
err = errors.Unwrap(err)
|
||||
continue
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user