Skip to content

Commit

Permalink
add minimal test and fix uncovered bugs.
Browse files Browse the repository at this point in the history
Signed-off-by: Tim <[email protected]>
  • Loading branch information
Avarei committed Jul 1, 2024
1 parent 7ef0445 commit de6399d
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 11 deletions.
22 changes: 11 additions & 11 deletions internal/function/fn.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,26 +110,26 @@ func (f *Function) RunFunction(ctx context.Context, req *fnv1beta1.RunFunctionRe
return nil, errors.Wrapf(err, "rendered Pkl file was not in expected format. did you amend @crossplane/CompositionResponse.pkl?")
}

fixedRequirements := &fnv1beta1.Requirements{
ExtraResources: convertExtraResources(helperResponse.Requirements.ExtraResources),
}

responseMeta := &fnv1beta1.ResponseMeta{
Tag: req.GetMeta().GetTag(),
Ttl: durationpb.New(response.DefaultTTL),
}
if ttl := helperResponse.GetMeta().GetTtl(); ttl != nil {
responseMeta.Ttl = ttl
}

// Note: consider not overwriting rsp and whether it makes a difference.
rsp = &fnv1beta1.RunFunctionResponse{
Meta: responseMeta,
Desired: helperResponse.Desired,
Results: helperResponse.Results,
Context: helperResponse.Context,
Requirements: fixedRequirements,
Meta: responseMeta,
Desired: helperResponse.Desired,
Results: helperResponse.Results,
Context: helperResponse.Context,
}

if ttl := helperResponse.GetMeta().GetTtl(); ttl != nil {
rsp.Meta.Ttl = ttl
if helperResponse.Requirements != nil && helperResponse.Requirements.ExtraResources != nil {
rsp.Requirements = &fnv1beta1.Requirements{
ExtraResources: convertExtraResources(helperResponse.Requirements.ExtraResources),
}
}

return rsp, nil
Expand Down
66 changes: 66 additions & 0 deletions internal/function/fn_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package function
import (
"context"
"fmt"
"github.com/crossplane/function-sdk-go/response"
"os"
"testing"

Expand Down Expand Up @@ -54,6 +55,71 @@ func TestRunFunction(t *testing.T) {
args args
want want
}{
"Minimal": {
reason: "The Function should create a single resource",
args: args{
ctx: context.TODO(),
req: &fnv1beta1.RunFunctionRequest{
Input: resource.MustStructObject(&v1beta1.Pkl{
Spec: v1beta1.PklSpec{
Type: "local",
Local: &v1beta1.Local{
ProjectDir: pklPackage,
File: pklPackage + "/minimal.pkl",
},
},
}),
Observed: &fnv1beta1.State{
Composite: &fnv1beta1.Resource{
Resource: resource.MustStructJSON(`{
"apiVersion": "example.crossplane.io/v1",
"kind": "XR",
"metadata": {
"name": "example-xr"
},
"spec": {}
}`),
},
},
},
},
want: want{
rsp: &fnv1beta1.RunFunctionResponse{
Meta: &fnv1beta1.ResponseMeta{
Ttl: durationpb.New(response.DefaultTTL),
},
Desired: &fnv1beta1.State{
Composite: &fnv1beta1.Resource{},
Resources: map[string]*fnv1beta1.Resource{
"cm-minimal": {
Resource: resource.MustStructJSON(`{
"apiVersion": "kubernetes.crossplane.io/v1alpha2",
"kind": "Object",
"metadata": {
"name": "cm-one"
},
"spec": {
"forProvider": {
"manifest": {
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"name": "cm-minimal",
"namespace": "crossplane-system"
},
"data": {
"foo": "bar"
}
}
}
}
}`),
},
},
},
},
},
},
"Full": {
reason: "The Function should create a full functionResult",
args: args{
Expand Down

0 comments on commit de6399d

Please sign in to comment.