Checking if effect 'dual-rumble' with params '{"duration":5001}' throws TypeError: Invalid effect Checking if effect 'dual-rumble' with params '{"startDelay":5001}' throws TypeError: Invalid effect Checking if effect 'dual-rumble' with params '{"duration":2500,"startDelay":2501}' throws TypeError: Invalid effect Checking if effect 'dual-rumble' with params '{"duration":1,"weakMagnitude":-0.1}' throws TypeError: Invalid effect Checking if effect 'dual-rumble' with params '{"duration":1,"weakMagnitude":1.1}' throws TypeError: Invalid effect Checking if effect 'dual-rumble' with params '{"duration":1,"strongMagnitude":-0.1}' throws TypeError: Invalid effect Checking if effect 'dual-rumble' with params '{"duration":1,"strongMagnitude":1.1}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"duration":5001}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"startDelay":5001}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"duration":2500,"startDelay":2501}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"duration":1,"weakMagnitude":-0.1}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"duration":1,"weakMagnitude":1.1}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"duration":1,"strongMagnitude":-0.1}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"duration":1,"strongMagnitude":1.1}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"duration":1,"leftTrigger":-0.1}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"duration":1,"leftTrigger":1.1}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"duration":1,"rightTrigger":-0.1}' throws TypeError: Invalid effect Checking if effect 'trigger-rumble' with params '{"duration":1,"rightTrigger":1.1}' throws TypeError: Invalid effect Playing valid dual rumble effect Dual rumble promise resolved with 'complete' Playing valid trigger rumble effect Trigger rumble promise resolved with 'complete' Testing preempting a rumble effect newDualRumbleResult: 'complete', preemptedResult: 'preempted' Received dual rumble effects: [{"lowFrequencyRumble":32767,"highFrequencyRumble":32767},{"lowFrequencyRumble":0,"highFrequencyRumble":0},{"lowFrequencyRumble":6553,"highFrequencyRumble":6553},{"lowFrequencyRumble":65535,"highFrequencyRumble":65535},{"lowFrequencyRumble":0,"highFrequencyRumble":0}] Received trigger rumble effects: [{"leftRumble":32767,"rightRumble":32767},{"leftRumble":0,"rightRumble":0}] Received gamepaddisconnected event for 'Ladybird Virtual Gamepad' at index 0