package js import ( "context" "testing" "time" "github.com/stretchr/testify/require" "src.dualinventive.com/go/devsim/simulator/testdata" "src.dualinventive.com/go/dinet/rpc" ) // Test publish without result and with result map and array func TestInterval(t *testing.T) { m, tt := model(t) s, err := newSimulator(m, &testdata.Info{IPath: "testdata/interval"}) require.Nil(t, err) s.Start() defer s.Stop() msg1, err := tt.Dequeue(context.Background()) testIntervalMsg(t, msg1, err) msg2, err := tt.Dequeue(context.Background()) testIntervalMsg(t, msg2, err) require.InDelta(t, 10*time.Millisecond, msg2.Time.Sub(msg1.Time), 10e6) } func testIntervalMsg(t *testing.T, msg *rpc.Msg, err error) { require.Nil(t, err) require.NotNil(t, msg) require.Nil(t, msg.Error) require.Nil(t, msg.Params) require.Nil(t, msg.Result) require.Zero(t, msg.ID) // TODO: the simulator transport adds the deviceUID require.Equal(t, "", msg.DeviceUID) require.Equal(t, rpc.ClassMethodDevicePing, msg.ClassMethod) }