This is a testharness.js-based test. [FAIL] createOffer must detect InvalidStateError synchronously when chain is empty (prerequisite) assert_equals: expected "InvalidStateError" but got "Error" [FAIL] createAnswer must detect InvalidStateError synchronously when chain is empty (prerequisite) assert_equals: promise rejected on same task expected "rejected" but got "pending" [FAIL] setParameters must detect InvalidStateError synchronously always when transceiver is stopped assert_equals: promise rejected on same task expected "rejected" but got "pending" [FAIL] isOperationsChainEmpty detects empty in stable assert_true: Empty to start expected true got false [FAIL] isOperationsChainEmpty detects empty in have-local-offer assert_true: Empty to start expected true got false [FAIL] isOperationsChainEmpty detects empty in have-remote-offer assert_equals: isOperationsChainEmpty is working expected "InvalidStateError" but got "Error" [FAIL] createAnswer uses operations chain assert_equals: isOperationsChainEmpty is working expected "InvalidStateError" but got "Error" [FAIL] setLocalDescription uses operations chain assert_true: Empty before expected true got false [FAIL] setRemoteDescription uses operations chain assert_true: Empty before expected true got false [FAIL] addIceCandidate uses operations chain assert_equals: isOperationsChainEmpty is working expected "InvalidStateError" but got "Error" [FAIL] Firing of negotiationneeded does NOT use operations chain assert_true: Empty chain expected true got false [FAIL] replaceTrack uses operations chain assert_true: Empty chain expected true got false [FAIL] pc.getStats does NOT use the operations chain assert_true: Empty chain expected true got false [FAIL] sender.getStats does NOT use the operations chain assert_true: Empty chain expected true got false [FAIL] receiver.getStats does NOT use the operations chain assert_true: Empty chain expected true got false Harness: the test ran to completion.