Skip to content

Commit e58957c

Browse files
yasirfolio3Michael Ng
authored andcommitted
refac(gherkins): Fixed comparison of dispatched events. (#144)
1 parent 1778cf1 commit e58957c

File tree

2 files changed

+16
-16
lines changed

2 files changed

+16
-16
lines changed

tests/integration/support/steps.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,15 @@
1717
package support
1818

1919
import (
20+
"encoding/json"
2021
"fmt"
2122
"strconv"
2223

2324
"github.com/DATA-DOG/godog/gherkin"
24-
"github.com/facebookarchive/subset"
2525
"github.com/optimizely/go-sdk/pkg/entities"
2626
"github.com/optimizely/go-sdk/tests/integration/models"
2727
"github.com/optimizely/go-sdk/tests/integration/optlyplugins"
28+
"github.com/optimizely/subset"
2829
"gopkg.in/yaml.v3"
2930
)
3031

@@ -206,12 +207,21 @@ func (c *ScenarioCtx) DispatchedEventsPayloadsInclude(value *gherkin.DocString)
206207
if err != nil {
207208
return fmt.Errorf("Invalid Project Config")
208209
}
209-
requestedBatchEvents, err := getDispatchedEventsFromYaml(value.Content, config)
210+
expectedBatchEvents, err := getDispatchedEventsMapFromYaml(value.Content, config)
210211
if err != nil {
211212
return fmt.Errorf("Invalid request for dispatched Events")
212213
}
213-
dispatchedEvents := c.clientWrapper.EventDispatcher.(optlyplugins.EventReceiver).GetEvents()
214-
if subset.Check(requestedBatchEvents, dispatchedEvents) {
214+
215+
eventsReceived := c.clientWrapper.EventDispatcher.(optlyplugins.EventReceiver).GetEvents()
216+
eventsReceivedJSON, err := json.Marshal(eventsReceived)
217+
if err != nil {
218+
return fmt.Errorf("Invalid response for dispatched Events")
219+
}
220+
var actualBatchEvents []map[string]interface{}
221+
if err := json.Unmarshal(eventsReceivedJSON, &actualBatchEvents); err != nil {
222+
return fmt.Errorf("Invalid response for dispatched Events")
223+
}
224+
if subset.Check(expectedBatchEvents, actualBatchEvents) {
215225
return nil
216226
}
217227
return fmt.Errorf("DispatchedEvents not equal")

tests/integration/support/utils.go

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,31 +17,21 @@
1717
package support
1818

1919
import (
20-
"encoding/json"
2120
"regexp"
2221
"strings"
2322

2423
"github.com/optimizely/go-sdk/pkg"
2524

26-
"github.com/optimizely/go-sdk/pkg/event"
2725
"gopkg.in/yaml.v3"
2826
)
2927

30-
func getDispatchedEventsFromYaml(s string, config pkg.ProjectConfig) ([]event.Batch, error) {
28+
func getDispatchedEventsMapFromYaml(s string, config pkg.ProjectConfig) ([]map[string]interface{}, error) {
3129
var eventsArray []map[string]interface{}
3230
parsedString := parseTemplate(s, config)
3331
if err := yaml.Unmarshal([]byte(parsedString), &eventsArray); err != nil {
3432
return nil, err
3533
}
36-
jsonString, err := json.Marshal(eventsArray)
37-
if err != nil {
38-
return nil, err
39-
}
40-
requestedBatchEvents := []event.Batch{}
41-
if err := json.Unmarshal([]byte(jsonString), &requestedBatchEvents); err != nil {
42-
return nil, err
43-
}
44-
return requestedBatchEvents, nil
34+
return eventsArray, nil
4535
}
4636

4737
func parseTemplate(s string, config pkg.ProjectConfig) string {

0 commit comments

Comments
 (0)