* feat(appfile): Add comprehensive unit tests for appfile package
This commit significantly enhances the test coverage for the `pkg/appfile` package by adding a comprehensive suite of new unit tests. These tests improve the reliability of core application parsing, generation, and validation logic.
Key additions include:
- **Parsing:** New tests for policy parsing, legacy application revision handling, and dynamic component loading.
- **Manifest Generation:** Added coverage for `GenerateComponentManifests` and `GeneratePolicyManifests` to ensure correctness of generated resources.
- **OAM Contracts:** New tests for `SetOAMContract` and `setWorkloadRefToTrait` to verify OAM label and reference injection.
- **Template & Context:** Added tests for loading templates from revisions (`LoadTemplateFromRevision`) and preparing the process context (`PrepareProcessContext`).
- **Validation:** Enhanced validation tests for component parameters and uniqueness of output names.
As part of this effort, the existing tests were also migrated from Ginkgo to the standard `testing` package with `testify/assert` to maintain consistency across the codebase.
Signed-off-by: Ashvin Bambhaniya <ashvin.bambhaniya@improwised.com>
* refactor(pkg/component): Migrate ref-objects tests to standard Go testing and add new test cases
This commit refactors the unit tests for `pkg/component/ref-objects` from a Ginkgo-based suite to the standard Go `testing` package. Additionally, new unit test cases have been added to further enhance test coverage and ensure the robustness of the `ref-objects` functionality.
Key changes include:
- Deletion of `pkg/component/ref_objects_suite_test.go`.
- Introduction of `pkg/component/main_test.go` to manage test environment setup and teardown using `TestMain`.
- Creation of `pkg/component/ref_objects_test.go` containing all the ref-objects related unit tests, now using standard Go testing functions, along with newly added test cases for improved coverage.
This migration improves consistency with other unit tests in the codebase and leverages the native Go testing framework.
Signed-off-by: Ashvin Bambhaniya <ashvin.bambhaniya@improwised.com>
* chore(pkg/component): Reorder imports in ref_objects_test.go
This commit reorders the import statements in `pkg/component/ref_objects_test.go` to adhere to standard Go formatting and import grouping conventions. This change improves code readability and consistency.
Signed-off-by: Ashvin Bambhaniya <ashvin.bambhaniya@improwised.com>
---------
Signed-off-by: Ashvin Bambhaniya <ashvin.bambhaniya@improwised.com>
* upgrade K8s dependency to v0.21
* update CRD for new version of controller-runtime
* fix ci component revision create must fill Raw in runtime.RawExtension
* try fix test
* start control plane timeout set to 1min and fix tests
* add timeout for env test start and stop
* longer timeout time for BeforeSuit function
* upgrade kubebuilder and k8s cluster version to match with v1.21.2 in github action
* fix test
* fix resource tracker ownerRef override
* update developer guides
rfc appfile pkg: remove appConfig&component
fix unit test
rfc vela cli dryrun & livediff
fix unit test & e2e test
rfc app controller: remove appConfig&component
fix unit test & e2e test
fix rollout and webhook
fix use AppRevision as others' owner
move ComponentManifest to oam.types
add a util to make conversion between AppConfig and ComponentManifest
complete Component revision mechanism in app controller
add test for component revision
rename
fix unit tests
add clean up for component revision
fix unit test
Signed-off-by: roywang <seiwy2010@gmail.com>
* Support cloud resource provisioning and consuming (Crossplane)
Provided a way to store secret for cloud resource generated by
Crossplane and to consume the secret
Refer to #1128
* Separate cloud resource producer and consumer in two applications
* add unit test to check whether application can consume cloud resource secret
* update Cloud Resource doc
* Provisioning and consuming cloud resource in different applications v1 (one cloud resource)
* one component consumes two cloud resources
Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
* implemente kube schematic
generate schema for kube schematic parameters
add e2e test
Signed-off-by: roywang <seiwy2010@gmail.com>
* add unit test
Signed-off-by: roy wang <seiwy2010@gmail.com>
* add doc
Signed-off-by: roy wang <seiwy2010@gmail.com>
fix diff
update example and test data version
fix convert function
fix e2e for helm
clean up creationTimestamp in a hack way
fix ci
pending package suit test
fix group version
fix ci
fix ut
rename type to kind
fix example
fix conflicts
Co-authored-by: yangsoon <yangsoonlx@gmail.com>
use settings from App to override Values
add discovery util to get workload created by helm module
add helm typed structs into workloadDef and traitDef
update doc & refine code
add e2e test for helm module application
use oam.dev/catalog as helm repo
Signed-off-by: roywang <seiwy2010@gmail.com>
solve failed test
add compatibility test for old crd
add app ns for cli
modify compatibility test
solve compatibility problem
add testing for GetDefinition func with cluster scope CRD
generate code for compatibility-test
move testdata generate to makefile
optimize ci pipeline for compatibility-test
* add webhooks
* app controller change
* add component revision and appconfig revision and test
* solidify the component revision logic and fix component revisoin bugs
* fix command cli e2e failure
* fix the bug caused by rawExtention
* fix UT test
* retry on component not found
* lint
* revert component revision create order
* Integrate Terraform into KubeVela
Integrated Terrafrom into KubeVela to enable it to deploy
infrastruce resouces by `vela up`
* extend Terraform modules/files as WorkloadDefinition
stop printing terraform log to console
Support one workload consumes two cloud services
Refactor Terraform plugin based on Application Object
add testcase
* refactor code per reviewer's comments
fix rebase issue
* find lost code back
* refactor code to make the modification as little as to that of branch master
* remove blank lines from imports