diff --git a/pkg/api/models/keptn_context_extended_c_e.go b/pkg/api/models/keptn_context_extended_c_e.go index 3aad08d0..ccb98fb5 100644 --- a/pkg/api/models/keptn_context_extended_c_e.go +++ b/pkg/api/models/keptn_context_extended_c_e.go @@ -95,9 +95,11 @@ const temporaryDataRootKey = "temporaryData" // AddTemporaryData adds further (temporary) properties to the data section of the keptn event func (ce *KeptnContextExtendedCE) AddTemporaryData(key string, tmpData TemporaryData, opts AddTemporaryDataOptions) error { eventData := map[string]interface{}{} - err := ce.DataAs(&eventData) - if err != nil { - return err + if ce.Data != nil { + err := ce.DataAs(&eventData) + if err != nil { + return err + } } if temporaryData, found := eventData[temporaryDataRootKey]; found { if _, kfound := temporaryData.(map[string]interface{})[key]; kfound { diff --git a/pkg/api/models/keptn_context_extended_c_e_test.go b/pkg/api/models/keptn_context_extended_c_e_test.go index 159e7e5e..8ab73ef0 100644 --- a/pkg/api/models/keptn_context_extended_c_e_test.go +++ b/pkg/api/models/keptn_context_extended_c_e_test.go @@ -138,6 +138,27 @@ func TestAddTemporaryData(t *testing.T) { require.Nil(t, err) } +func TestAddTemporaryData_EventDataNil(t *testing.T) { + event := models.KeptnContextExtendedCE{} + + type AdditionalData struct { + SomeString string `json:"someString"` + SomeInt int `json:"someInt"` + } + temporaryDataToAdd := models.TemporaryData(AdditionalData{ + SomeString: "Bernd", + SomeInt: 34, + }) + err := event.AddTemporaryData("distributor", temporaryDataToAdd, models.AddTemporaryDataOptions{}) + require.Nil(t, err) + + addi := AdditionalData{} + err = event.GetTemporaryData("distributor", &addi) + fmt.Println(addi.SomeInt) + + require.Nil(t, err) +} + func TestKeptnContextExtendedCE_TemporaryData(t *testing.T) { type TestData struct { v0_2_0.EventData