require("./chai.helper");
var domHelper = require("./dom.helper");
describe("closest", function () {
var elt;
var emptyCollection;
beforeEach(function () {
domHelper(
"
" +
"
" +
"
" +
"" +
"hello" +
"" +
"
" +
"
" +
"
" +
"" +
""
);
elt = $(".inner3");
elt.length.should.equal(1);
emptyCollection = $("bloop");
emptyCollection.length.should.equal(0);
});
it("should select the first ancestor node which matches the selector", function () {
var closest = elt.closest(".outer");
closest.length.should.equal(1);
closest[0].should.equal($("#should-be-me")[0]);
});
it("should select the first ancestor node which matches the selector wrt a context", function () {
var closest = elt.closest(".outer", document);
closest.length.should.equal(1);
closest[0].should.equal($("#should-be-me")[0]);
});
it("should return an empty collection if context causes match to fail", function () {
var closest = elt.closest(".outer", $(".no-match"));
closest.length.should.equal(0);
$.is$(closest).should.be.true;
});
it("should return an empty collection if no matching closest node", function () {
var closest = elt.closest("yottaflop");
closest.length.should.equal(0);
$.is$(closest).should.be.true;
});
it("should return the empty collection if called on an empty collection", function () {
var closest = emptyCollection.closest(".outer");
closest.should.equal(emptyCollection);
closest.length.should.equal(0);
$.is$(closest).should.be.true;
});
});