mirror of
https://github.com/kubevela/kubevela.git
synced 2026-05-17 06:46:47 +00:00
* Refactor: use createOrUpdateNamespace as a common util function
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Feat: add ENV webservice handelr
* Fix: fix Env usecase logic
* Feat: Add Delete Env API
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: filter empty addon data
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Feat: split makefiels and make it clear
* Feat: add k8s utils test
* Feat: Add env update interface
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Feat: change env implementation
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: minor fix
* Revert "Fix: minor fix"
This reverts commit 9cafefa65a.
* Fix: use appusecase as parameter
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Refactor: align CLI vela env with new env design
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: minor fix
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Feat: add page index and alias of env
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: fix tests and licence header
* Fix: fix makefile and add default target
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: update build swagger.json
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: change update env api
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: list env with alias
* Feat: add log to env delete
* Fix: can not get app status
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: support update workflow and refactor code
* Fix: lint
* Fix: remove swagger check
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: fix cli vela delete
* Fix: update test
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: update test
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: app deploy unit test case
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: SortOrderDescending is not effective
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: e2e test case
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: support default project/target/env
* Fix: make test and add swagger
* Fix: use separated datasource for unit test
* Fix: app rollback bug
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: fix e2e test
* Fix: kubeapi driver sort bug
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: e2e test
* Fix: api e2e test
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: e2e test fix
* Fix: try fix e2e test
* Fix: api e2e test
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
88 lines
3.1 KiB
Go
88 lines
3.1 KiB
Go
/*
|
|
Copyright 2021 The KubeVela Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package usecase
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/google/go-cmp/cmp"
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
|
|
"github.com/oam-dev/kubevela/pkg/apiserver/datastore"
|
|
"github.com/oam-dev/kubevela/pkg/apiserver/model"
|
|
apisv1 "github.com/oam-dev/kubevela/pkg/apiserver/rest/apis/v1"
|
|
)
|
|
|
|
var _ = Describe("Test target usecase functions", func() {
|
|
var (
|
|
targetUsecase *targetUsecaseImpl
|
|
projectUsecase *projectUsecaseImpl
|
|
testProject = "target-project"
|
|
)
|
|
BeforeEach(func() {
|
|
ds, err := NewDatastore(datastore.Config{Type: "kubeapi", Database: "target-test-kubevela"})
|
|
Expect(ds).ToNot(BeNil())
|
|
Expect(err).Should(BeNil())
|
|
projectUsecase = &projectUsecaseImpl{ds: ds, k8sClient: k8sClient}
|
|
targetUsecase = &targetUsecaseImpl{ds: ds, k8sClient: k8sClient}
|
|
})
|
|
It("Test CreateTarget function", func() {
|
|
_, err := projectUsecase.CreateProject(context.TODO(), apisv1.CreateProjectRequest{Name: testProject})
|
|
Expect(err).Should(BeNil())
|
|
|
|
req := apisv1.CreateTargetRequest{
|
|
Name: "test--target",
|
|
Alias: "test-alias",
|
|
Description: "this is a Target",
|
|
Cluster: &apisv1.ClusterTarget{ClusterName: "cluster-dev", Namespace: "dev"},
|
|
Variable: map[string]interface{}{"terraform-provider": "provider", "region": "us-1"},
|
|
}
|
|
base, err := targetUsecase.CreateTarget(context.TODO(), req)
|
|
Expect(err).Should(BeNil())
|
|
Expect(cmp.Diff(base.Name, req.Name)).Should(BeEmpty())
|
|
|
|
Expect(targetUsecase.ds.Add(context.TODO(), &model.Cluster{Name: "cluster-dev", Alias: "dev-alias"})).Should(Succeed())
|
|
|
|
By("Test GetTarget function")
|
|
Target, err := targetUsecase.GetTarget(context.TODO(), "test--target")
|
|
Expect(err).Should(BeNil())
|
|
Expect(Target).ShouldNot(BeNil())
|
|
Expect(cmp.Diff(Target.Name, "test--target")).Should(BeEmpty())
|
|
|
|
By("Test ListTargets function")
|
|
resp, err := targetUsecase.ListTargets(context.TODO(), 1, 1)
|
|
Expect(err).Should(BeNil())
|
|
Expect(resp.Targets[0].ClusterAlias).Should(Equal("dev-alias"))
|
|
|
|
By("Test DetailTarget function")
|
|
detail, err := targetUsecase.DetailTarget(context.TODO(),
|
|
&model.Target{
|
|
Name: "test--target",
|
|
Alias: "test-alias",
|
|
Description: "this is a Target",
|
|
Cluster: &model.ClusterTarget{ClusterName: "cluster-dev", Namespace: "dev"},
|
|
Variable: map[string]interface{}{"terraform-provider": "provider", "region": "us-1"}})
|
|
Expect(err).Should(BeNil())
|
|
Expect(detail.Name).Should(Equal("test--target"))
|
|
|
|
By("Test Delete target")
|
|
err = targetUsecase.DeleteTarget(context.TODO(), "test--target")
|
|
Expect(err).Should(BeNil())
|
|
})
|
|
})
|