Skip to content

Commit

Permalink
move json objects to top of tests and add full without extraResources…
Browse files Browse the repository at this point in the history
… test

Signed-off-by: Tim <[email protected]>
  • Loading branch information
Avarei committed Jul 13, 2024
1 parent 2ac742c commit 332a5e6
Showing 1 changed file with 79 additions and 73 deletions.
152 changes: 79 additions & 73 deletions internal/function/fn_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@ import (
var (
workdir, _ = os.Getwd()
pklPackage = fmt.Sprintf("%s/../../pkl/crossplane.contrib.example", workdir)

xr = `{"apiVersion": "example.crossplane.io/v1","kind": "XR","metadata": {"name": "example-xr"},"spec": {}}`
xrStatus = `{"apiVersion": "example.crossplane.io/v1","kind": "XR","status": {"someStatus": "pretty status"}}`
environmentConfig = `{"apiextensions.crossplane.io/environment": {"foo": "bar"}, "greetings": "with <3 from function-pkl"}`

objectWithRequired = `{"apiVersion": "kubernetes.crossplane.io/v1alpha2","kind": "Object","spec": {"forProvider": {"manifest": {"apiVersion": "v1","kind": "ConfigMap","metadata": {"namespace": "crossplane-system"},"data": {"foo": "example-xr","required": "required"}}}}}`
objectWithoutRequired = `{"apiVersion": "kubernetes.crossplane.io/v1alpha2","kind": "Object","spec": {"forProvider": {"manifest": {"apiVersion": "v1","kind": "ConfigMap","metadata": {"namespace": "crossplane-system"},"data": {"foo": "example-xr","required": "i could not find what I needed..."}}}}}`
objectMinimal = `{"apiVersion": "kubernetes.crossplane.io/v1alpha2","kind": "Object","spec": {"forProvider": {"manifest": {"apiVersion": "v1","kind": "ConfigMap","metadata": {"namespace": "crossplane-system"},"data": {"foo": "bar"}}}}}`
)

func TestRunFunction(t *testing.T) {
Expand Down Expand Up @@ -71,14 +79,7 @@ func TestRunFunction(t *testing.T) {
}),
Observed: &fnv1beta1.State{
Composite: &fnv1beta1.Resource{
Resource: resource.MustStructJSON(`{
"apiVersion": "example.crossplane.io/v1",
"kind": "XR",
"metadata": {
"name": "example-xr"
},
"spec": {}
}`),
Resource: resource.MustStructJSON(xr),
},
},
},
Expand All @@ -91,30 +92,76 @@ func TestRunFunction(t *testing.T) {
Desired: &fnv1beta1.State{
Resources: map[string]*fnv1beta1.Resource{
"cm-minimal": {
Resource: resource.MustStructJSON(`{
"apiVersion": "kubernetes.crossplane.io/v1alpha2",
"kind": "Object",
"spec": {
"forProvider": {
"manifest": {
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"namespace": "crossplane-system"
},
"data": {
"foo": "bar"
}
}
}
}
}`),
Resource: resource.MustStructJSON(objectMinimal),
},
},
},
},
},
},
"FullFirstRun": {
reason: "The Function should create a full functionResult",
args: args{
ctx: context.TODO(),
req: &fnv1beta1.RunFunctionRequest{
Meta: &fnv1beta1.RequestMeta{Tag: "extra"},
Input: resource.MustStructObject(&v1beta1.Pkl{
Spec: v1beta1.PklSpec{
Type: "local",
Local: &v1beta1.Local{
ProjectDir: pklPackage,
File: pklPackage + "/compositions/steps/full.pkl",
},
},
}),
Context: resource.MustStructJSON(environmentConfig),
Observed: &fnv1beta1.State{
Composite: &fnv1beta1.Resource{
Resource: resource.MustStructJSON(xr),
},
},
},
},
want: want{
rsp: &fnv1beta1.RunFunctionResponse{
Desired: &fnv1beta1.State{
Composite: &fnv1beta1.Resource{
Resource: resource.MustStructJSON(xrStatus),
},
Resources: map[string]*fnv1beta1.Resource{
"cm-one": {
Resource: resource.MustStructJSON(objectWithoutRequired),
Ready: fnv1beta1.Ready_READY_TRUE,
},
},
},
Requirements: &fnv1beta1.Requirements{
ExtraResources: map[string]*fnv1beta1.ResourceSelector{
"ineed": {
ApiVersion: "kubernetes.crossplane.io/v1alpha2",
Kind: "Object",
Match: &fnv1beta1.ResourceSelector_MatchName{
MatchName: "required",
},
},
},
},
Meta: &fnv1beta1.ResponseMeta{
Tag: "extra",
Ttl: &durationpb.Duration{
Seconds: 60,
},
},
Context: resource.MustStructJSON(environmentConfig),
Results: []*fnv1beta1.Result{
{
Severity: fnv1beta1.Severity_SEVERITY_NORMAL,
Message: "welcome",
},
},
},
},
},
"Full": {
reason: "The Function should create a full functionResult",
args: args{
Expand Down Expand Up @@ -168,36 +215,12 @@ func TestRunFunction(t *testing.T) {
rsp: &fnv1beta1.RunFunctionResponse{
Desired: &fnv1beta1.State{
Composite: &fnv1beta1.Resource{
Resource: resource.MustStructJSON(`{
"apiVersion": "example.crossplane.io/v1",
"kind": "XR",
"status": {
"someStatus": "pretty status"
}
}`),
Resource: resource.MustStructJSON(xrStatus),
},
Resources: map[string]*fnv1beta1.Resource{
"cm-one": {
Resource: resource.MustStructJSON(`{
"apiVersion": "kubernetes.crossplane.io/v1alpha2",
"kind": "Object",
"spec": {
"forProvider": {
"manifest": {
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"namespace": "crossplane-system"
},
"data": {
"foo": "example-xr",
"required": "required"
}
}
}
}
}`),
Ready: fnv1beta1.Ready_READY_TRUE,
Resource: resource.MustStructJSON(objectWithRequired),
Ready: fnv1beta1.Ready_READY_TRUE,
},
},
},
Expand All @@ -218,12 +241,7 @@ func TestRunFunction(t *testing.T) {
Seconds: 60,
},
},
Context: resource.MustStructJSON(`{
"apiextensions.crossplane.io/environment": {
"foo": "bar"
},
"greetings": "with <3 from function-pkl"
}`),
Context: resource.MustStructJSON(environmentConfig),
Results: []*fnv1beta1.Result{
{
Severity: fnv1beta1.Severity_SEVERITY_NORMAL,
Expand All @@ -249,13 +267,7 @@ func TestRunFunction(t *testing.T) {
}),
Desired: &fnv1beta1.State{
Composite: &fnv1beta1.Resource{
Resource: resource.MustStructJSON(`{
"apiVersion": "example.crossplane.io/v1",
"kind": "XR",
"status": {
"someStatus": "pretty status"
}
}`),
Resource: resource.MustStructJSON(xrStatus),
},
},
},
Expand All @@ -264,13 +276,7 @@ func TestRunFunction(t *testing.T) {
rsp: &fnv1beta1.RunFunctionResponse{
Desired: &fnv1beta1.State{
Composite: &fnv1beta1.Resource{
Resource: resource.MustStructJSON(`{
"apiVersion": "example.crossplane.io/v1",
"kind": "XR",
"status": {
"someStatus": "pretty status"
}
}`),
Resource: resource.MustStructJSON(xrStatus),
},
},
Results: []*fnv1beta1.Result{
Expand Down

0 comments on commit 332a5e6

Please sign in to comment.