ocdp v1
This commit is contained in:
111
backend/internal/domain/service/instance_service_test.go
Normal file
111
backend/internal/domain/service/instance_service_test.go
Normal file
@ -0,0 +1,111 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
persistencemock "github.com/ocdp/cluster-service/internal/adapter/output/persistence/mock"
|
||||
"github.com/ocdp/cluster-service/internal/domain/entity"
|
||||
"github.com/ocdp/cluster-service/internal/domain/repository"
|
||||
)
|
||||
|
||||
func TestDeleteInstanceIgnoresMissingRelease(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
instanceRepo := persistencemock.NewInstanceRepositoryMock()
|
||||
|
||||
instance := &entity.Instance{
|
||||
ID: "inst-1",
|
||||
ClusterID: "cluster-1",
|
||||
Name: "demo",
|
||||
Namespace: "default",
|
||||
}
|
||||
if err := instanceRepo.Create(ctx, instance); err != nil {
|
||||
t.Fatalf("failed to seed instance: %v", err)
|
||||
}
|
||||
|
||||
cluster := &entity.Cluster{ID: "cluster-1", Name: "cluster", Host: "https://example.com"}
|
||||
clusterRepo := &stubClusterRepo{cluster: cluster}
|
||||
|
||||
svc := NewInstanceService(
|
||||
instanceRepo,
|
||||
clusterRepo,
|
||||
nil,
|
||||
&stubHelmClient{uninstallErr: entity.ErrInstanceNotFound},
|
||||
nil,
|
||||
nil,
|
||||
)
|
||||
|
||||
if err := svc.DeleteInstance(ctx, instance.ID); err != nil {
|
||||
t.Fatalf("DeleteInstance returned error: %v", err)
|
||||
}
|
||||
|
||||
if _, err := instanceRepo.GetByID(ctx, instance.ID); !errors.Is(err, entity.ErrInstanceNotFound) {
|
||||
t.Fatalf("expected instance removed, got err=%v", err)
|
||||
}
|
||||
}
|
||||
|
||||
type stubClusterRepo struct {
|
||||
cluster *entity.Cluster
|
||||
}
|
||||
|
||||
func (s *stubClusterRepo) Create(ctx context.Context, cluster *entity.Cluster) error {
|
||||
s.cluster = cluster
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *stubClusterRepo) GetByID(ctx context.Context, id string) (*entity.Cluster, error) {
|
||||
if s.cluster != nil && s.cluster.ID == id {
|
||||
return s.cluster, nil
|
||||
}
|
||||
return nil, entity.ErrClusterNotFound
|
||||
}
|
||||
|
||||
func (*stubClusterRepo) GetByName(ctx context.Context, name string) (*entity.Cluster, error) {
|
||||
return nil, entity.ErrClusterNotFound
|
||||
}
|
||||
|
||||
func (*stubClusterRepo) Update(ctx context.Context, cluster *entity.Cluster) error { return nil }
|
||||
|
||||
func (*stubClusterRepo) Delete(ctx context.Context, id string) error { return nil }
|
||||
|
||||
func (*stubClusterRepo) List(ctx context.Context) ([]*entity.Cluster, error) { return nil, nil }
|
||||
|
||||
type stubHelmClient struct {
|
||||
uninstallErr error
|
||||
}
|
||||
|
||||
func (*stubHelmClient) Install(ctx context.Context, cluster *entity.Cluster, instance *entity.Instance) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (*stubHelmClient) Upgrade(ctx context.Context, cluster *entity.Cluster, instance *entity.Instance) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *stubHelmClient) Uninstall(ctx context.Context, cluster *entity.Cluster, releaseName, namespace string) error {
|
||||
return s.uninstallErr
|
||||
}
|
||||
|
||||
func (*stubHelmClient) Rollback(ctx context.Context, cluster *entity.Cluster, releaseName, namespace string, revision int) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (*stubHelmClient) GetStatus(ctx context.Context, cluster *entity.Cluster, releaseName, namespace string) (*entity.Instance, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (*stubHelmClient) GetHistory(ctx context.Context, cluster *entity.Cluster, releaseName, namespace string) ([]*entity.ReleaseHistory, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (*stubHelmClient) List(ctx context.Context, cluster *entity.Cluster, namespace string) ([]*entity.Instance, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (*stubHelmClient) GetValues(ctx context.Context, cluster *entity.Cluster, releaseName, namespace string) (map[string]interface{}, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
var _ repository.ClusterRepository = (*stubClusterRepo)(nil)
|
||||
var _ repository.HelmClient = (*stubHelmClient)(nil)
|
||||
Reference in New Issue
Block a user