diff --git a/genesyscloud/journey_views/resource_genesyscloud_journey_views_test.go b/genesyscloud/journey_views/resource_genesyscloud_journey_views_test.go index ca39fd4c8..5d2153764 100644 --- a/genesyscloud/journey_views/resource_genesyscloud_journey_views_test.go +++ b/genesyscloud/journey_views/resource_genesyscloud_journey_views_test.go @@ -71,6 +71,26 @@ func TestAccResourceJourneyViewsBasic(t *testing.T) { resource.TestCheckResourceAttr("genesyscloud_journey_views."+journeyResource, "elements.0.filter.0.predicates.0.no_value", fmt.Sprintf("%t", predicatesNoValue)), ), }, + { + //Update without filter + Config: generateUserWithCustomAttrs(testUserResource, testUserEmail, testUserName) + generateJourneyView(journeyResource, name, duration, generateElements( + elementsId, + elementsName, + generateAttributes(attributeType, attributeId, attributeSource), + "", + )), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr("genesyscloud_journey_views."+journeyResource, "name", name), + resource.TestCheckResourceAttr("genesyscloud_journey_views."+journeyResource, "duration", duration), + resource.TestCheckResourceAttr("genesyscloud_journey_views."+journeyResource, "elements.0.id", elementsId), + resource.TestCheckResourceAttr("genesyscloud_journey_views."+journeyResource, "elements.0.name", elementsName), + resource.TestCheckResourceAttr("genesyscloud_journey_views."+journeyResource, "elements.0.attributes.#", "1"), + resource.TestCheckResourceAttr("genesyscloud_journey_views."+journeyResource, "elements.0.attributes.0.type", attributeType), + resource.TestCheckResourceAttr("genesyscloud_journey_views."+journeyResource, "elements.0.attributes.0.id", attributeId), + resource.TestCheckResourceAttr("genesyscloud_journey_views."+journeyResource, "elements.0.attributes.0.source", attributeSource), + resource.TestCheckResourceAttr("genesyscloud_journey_views."+journeyResource, "elements.0.filter.#", "0"), + ), + }, { // Import/Read ResourceName: "genesyscloud_journey_views." + journeyResource, diff --git a/genesyscloud/journey_views/resource_genesyscloud_journey_views_utils.go b/genesyscloud/journey_views/resource_genesyscloud_journey_views_utils.go index b057f62b0..2f6dc4691 100644 --- a/genesyscloud/journey_views/resource_genesyscloud_journey_views_utils.go +++ b/genesyscloud/journey_views/resource_genesyscloud_journey_views_utils.go @@ -33,7 +33,7 @@ func buildElements(d *schema.ResourceData) (*[]platformclientv2.Journeyvieweleme if filterSlice, ok := elemMap["filter"].([]interface{}); ok { filter := buildJourneyViewElementFilter(filterSlice) - element.Filter = &filter + element.Filter = filter } if followedBySlice, ok := elemMap["followed_by"].([]interface{}); ok { @@ -65,7 +65,7 @@ func buildJourneyViewElementAttributes(attributesSlice []interface{}) platformcl return attributes } -func buildJourneyViewElementFilter(filterSlice []interface{}) platformclientv2.Journeyviewelementfilter { +func buildJourneyViewElementFilter(filterSlice []interface{}) *platformclientv2.Journeyviewelementfilter { var filter platformclientv2.Journeyviewelementfilter for _, elem := range filterSlice { if filterMap, ok := elem.(map[string]interface{}); ok { @@ -82,7 +82,10 @@ func buildJourneyViewElementFilter(filterSlice []interface{}) platformclientv2.J } } } - return filter + if len(filterSlice) == 0 { + return nil + } + return &filter } func buildJourneyviewelementfilterpredicate(predicateMap map[string]interface{}) platformclientv2.Journeyviewelementfilterpredicate {