|
17 | 17 | package support
|
18 | 18 |
|
19 | 19 | import (
|
| 20 | + "encoding/json" |
20 | 21 | "fmt"
|
21 | 22 | "strconv"
|
22 | 23 |
|
23 | 24 | "github.com/DATA-DOG/godog/gherkin"
|
24 |
| - "github.com/facebookarchive/subset" |
25 | 25 | "github.com/optimizely/go-sdk/pkg/entities"
|
26 | 26 | "github.com/optimizely/go-sdk/tests/integration/models"
|
27 | 27 | "github.com/optimizely/go-sdk/tests/integration/optlyplugins"
|
| 28 | + "github.com/optimizely/subset" |
28 | 29 | "gopkg.in/yaml.v3"
|
29 | 30 | )
|
30 | 31 |
|
@@ -206,12 +207,21 @@ func (c *ScenarioCtx) DispatchedEventsPayloadsInclude(value *gherkin.DocString)
|
206 | 207 | if err != nil {
|
207 | 208 | return fmt.Errorf("Invalid Project Config")
|
208 | 209 | }
|
209 |
| - requestedBatchEvents, err := getDispatchedEventsFromYaml(value.Content, config) |
| 210 | + expectedBatchEvents, err := getDispatchedEventsMapFromYaml(value.Content, config) |
210 | 211 | if err != nil {
|
211 | 212 | return fmt.Errorf("Invalid request for dispatched Events")
|
212 | 213 | }
|
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) { |
215 | 225 | return nil
|
216 | 226 | }
|
217 | 227 | return fmt.Errorf("DispatchedEvents not equal")
|
|
0 commit comments