Skip to content

Commit

Permalink
Ensure that decodeB64 returns a String rather than Bytes.
Browse files Browse the repository at this point in the history
This changes the return value of the decodeB64 overload to ensure that it returns a string.
  • Loading branch information
bigkevmcd authored and tekton-robot committed Jun 15, 2020
1 parent fc41889 commit b4e8a09
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 5 deletions.
28 changes: 24 additions & 4 deletions pkg/interceptors/cel/cel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,14 +120,34 @@ func TestInterceptor_ExecuteTrigger(t *testing.T) {
want: []byte(`{"replaced":"testing","new":"master","ref":"refs/head/master","name":"testing"}`),
},
{
name: "update with base64 decoding",
name: "decodeB64 with parseJSON",
CEL: &triggersv1.CELInterceptor{
Overlays: []triggersv1.CELOverlay{
{Key: "value", Expression: "body.value.decodeb64().parseJSON().test"},
},
},
payload: ioutil.NopCloser(bytes.NewBufferString(`{"value":"eyJ0ZXN0IjoiZGVjb2RlIn0="}`)),
want: []byte(`{"value":"decode"}`),
},
{
name: "decodeB64 to a field",
CEL: &triggersv1.CELInterceptor{
Overlays: []triggersv1.CELOverlay{
{Key: "value", Expression: "body.value.decodeb64()"},
},
},
payload: ioutil.NopCloser(bytes.NewBufferString(`{"value":"eyJ0ZXN0IjoiZGVjb2RlIn0="}`)),
want: []byte(`{"value":{"test":"decode"}}`),
want: []byte(`{"value":"{\"test\":\"decode\"}"}`),
},
{
name: "decode base64 string",
CEL: &triggersv1.CELInterceptor{
Overlays: []triggersv1.CELOverlay{
{Key: "value", Expression: "body.value.decodeb64()"},
},
},
payload: ioutil.NopCloser(bytes.NewBufferString(`{"value":"dGVzdGluZw=="}`)),
want: []byte(`{"value":"testing"}`),
},
{
name: "multiple overlays",
Expand Down Expand Up @@ -205,7 +225,7 @@ func TestInterceptor_ExecuteTrigger(t *testing.T) {
}
defer resp.Body.Close()
if diff := cmp.Diff(tt.want, got); diff != "" {
t.Errorf("Interceptor.ExecuteTrigger (-want, +got) = %s", diff)
rt.Errorf("Interceptor.ExecuteTrigger (-want, +got) = %s", diff)
}
})
}
Expand Down Expand Up @@ -376,7 +396,7 @@ func TestExpressionEvaluation(t *testing.T) {
{
name: "decode a base64 value",
expr: "body.b64value.decodeb64()",
want: types.Bytes("example"),
want: types.String("example"),
},
{
name: "increment an integer",
Expand Down
2 changes: 1 addition & 1 deletion pkg/interceptors/cel/triggers.go
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ func decodeB64String(val ref.Val) ref.Val {
if err != nil {
return types.NewErr("failed to decode '%v' in decodeB64: %w", str, err)
}
return types.Bytes(dec)
return types.String(dec)
}

// makeCompareSecret creates and returns a functions.FunctionOp that wraps the
Expand Down

0 comments on commit b4e8a09

Please sign in to comment.