first and take issues
by bman654
HTML
<script src="//code.jquery.com/qunit/qunit-1.11.0.js"></script>
<link rel="stylesheet" href="//code.jquery.com/qunit/qunit-1.11.0.css">
<script src="//rawgit.com/Reactive-Extensions/RxJS/master/dist/rx.all.js"></script>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
JavaScript
QUnit.module("tests");
QUnit.test("take(1) completes after one observation", 2, function () {
var s = new Rx.Subject();
var q = s.take(1);
q.subscribe(
function (value) {
QUnit.strictEqual(1, value);
},
function (err) {
QUnit.ok(false);
},
function () {
QUnit.ok(true, "completion called");
});
s.onNext(1);
});
QUnit.test("take(1) completes after one observation even when observer triggers new value", 2, function () {
var s = new Rx.Subject();
var q = s.take(1);
var first = true;
q.subscribe(
function (value) {
QUnit.strictEqual(1, value);
if (first) {
first = false;
s.onNext(3); // trigger another operation
}
},
function (err) {
QUnit.ok(false);
},
function () {
QUnit.ok(true, "completion called");
});
s.onNext(1);
});
QUnit.test("first() completes after one observation", 2, function () {
var s = new Rx.Subject();
var q = s.first();
q.subscribe(
function (value) {
QUnit.strictEqual(1, value);
},
function (err) {
QUnit.ok(false);
},
function () {
QUnit.ok(true, "completion called");
});
s.onNext(1);
});
QUnit.test("first() completes after one observation even when observer triggers new value", 2, function () {
var s = new Rx.Subject();
var q = s.first();
var first = true;
q.subscribe(
function (value) {
QUnit.strictEqual(1, value);
if (first) {
first = false;
s.onNext(3); // trigger another operation
}
},
function (err) {
QUnit.ok(false);
},
function () {
QUnit.ok(true, "completion called");
});
s.onNext(1);
});