Skip to content

Commit

Permalink
Update sort tests
Browse files Browse the repository at this point in the history
  • Loading branch information
javve committed Feb 3, 2014
1 parent ac61dc8 commit aa86505
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 66 deletions.
126 changes: 63 additions & 63 deletions test/test.buttons.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ describe('Button', function() {
beforeEach(function() {
$('body').append($('<div id="parse-list">\
<input class="search" />\
<span class="sort" id="sort1" data-sort="name">Sort name</span>\
<span class="sort" id="sort2" data-sort="name" data-order="asc">Sort name asc</span>\
<span class="sort" id="sort3" data-sort="name" data-order="desc">Sort name desc</span>\
<span class="sort" id="sort-name" data-sort="name">Sort name</span>\
<span class="sort" id="sort-name-asc" data-sort="name" data-order="asc">Sort name asc</span>\
<span class="sort" id="sort-name-desc" data-sort="name" data-order="desc">Sort name desc</span>\
<div class="list">\
<div><span class="name">Jonny</span><span class="born">1986</span></div>\
<div><span class="name">Jocke</span><span class="born">1985</span></div>\
Expand All @@ -56,13 +56,13 @@ describe('Button', function() {
list.on('sortComplete', function() {
done();
});
fireClick($('#sort1')[0]);
fireClick($('#sort-name')[0]);
});
it('should trigger sortComplete', function(done) {
list.on('sortComplete', function() {
done();
});
fireClick($('#sort1')[0]);
fireClick($('#sort-name')[0]);
});

it('should switch sorting order when clicking multiple times', function(done) {
Expand All @@ -71,26 +71,26 @@ describe('Button', function() {
list.on('sortComplete', function() {
sortRun++;
if (sortRun == 1) {
expect($('#sort1').hasClass('asc')).to.be(true);
expect($('#sort1').hasClass('desc')).to.be(false);
expect($('#sort-name').hasClass('asc')).to.be(true);
expect($('#sort-name').hasClass('desc')).to.be(false);
setTimeout(function() {
fireClick($('#sort1')[0]);
fireClick($('#sort-name')[0]);
}, 50);
} else if (sortRun == 2) {
expect($('#sort1').hasClass('asc')).to.be(false);
expect($('#sort1').hasClass('desc')).to.be(true);
expect($('#sort-name').hasClass('asc')).to.be(false);
expect($('#sort-name').hasClass('desc')).to.be(true);
setTimeout(function() {
fireClick($('#sort1')[0]);
fireClick($('#sort-name')[0]);
}, 50);
} else if (sortRun == 3) {
expect($('#sort1').hasClass('asc')).to.be(true);
expect($('#sort1').hasClass('desc')).to.be(false);
expect($('#sort-name').hasClass('asc')).to.be(true);
expect($('#sort-name').hasClass('desc')).to.be(false);
done();
}
});
expect($('#sort1').hasClass('asc')).to.be(false);
expect($('#sort1').hasClass('desc')).to.be(false);
fireClick($('#sort1')[0]);
expect($('#sort-name').hasClass('asc')).to.be(false);
expect($('#sort-name').hasClass('desc')).to.be(false);
fireClick($('#sort-name')[0]);
});

it('should sort with predefined order', function(done) {
Expand All @@ -99,72 +99,72 @@ describe('Button', function() {
list.on('sortComplete', function() {
sortRun++;
if (sortRun == 1) {
expect($('#sort1').hasClass('asc')).to.be(false);
expect($('#sort1').hasClass('desc')).to.be(false);
expect($('#sort2').hasClass('asc')).to.be(true);
expect($('#sort2').hasClass('desc')).to.be(false);
expect($('#sort3').hasClass('asc')).to.be(false);
expect($('#sort3').hasClass('desc')).to.be(false);
expect($('#sort-name').hasClass('asc')).to.be(true);
expect($('#sort-name').hasClass('desc')).to.be(false);
expect($('#sort-name-asc').hasClass('asc')).to.be(true);
expect($('#sort-name-asc').hasClass('desc')).to.be(false);
expect($('#sort-name-desc').hasClass('asc')).to.be(false);
expect($('#sort-name-desc').hasClass('desc')).to.be(false);
setTimeout(function() {
fireClick($('#sort2')[0]);
fireClick($('#sort-name-asc')[0]);
}, 50);
} else if (sortRun == 2) {
expect($('#sort1').hasClass('asc')).to.be(false);
expect($('#sort1').hasClass('desc')).to.be(false);
expect($('#sort2').hasClass('asc')).to.be(true);
expect($('#sort2').hasClass('desc')).to.be(false);
expect($('#sort3').hasClass('asc')).to.be(false);
expect($('#sort3').hasClass('desc')).to.be(false);
expect($('#sort-name').hasClass('asc')).to.be(true);
expect($('#sort-name').hasClass('desc')).to.be(false);
expect($('#sort-name-asc').hasClass('asc')).to.be(true);
expect($('#sort-name-asc').hasClass('desc')).to.be(false);
expect($('#sort-name-desc').hasClass('asc')).to.be(false);
expect($('#sort-name-desc').hasClass('desc')).to.be(false);
setTimeout(function() {
fireClick($('#sort2')[0]);
fireClick($('#sort-name-asc')[0]);
}, 50);
} else if (sortRun == 3) {
expect($('#sort1').hasClass('asc')).to.be(false);
expect($('#sort1').hasClass('desc')).to.be(false);
expect($('#sort2').hasClass('asc')).to.be(true);
expect($('#sort2').hasClass('desc')).to.be(false);
expect($('#sort3').hasClass('asc')).to.be(false);
expect($('#sort3').hasClass('desc')).to.be(false);
expect($('#sort-name').hasClass('asc')).to.be(true);
expect($('#sort-name').hasClass('desc')).to.be(false);
expect($('#sort-name-asc').hasClass('asc')).to.be(true);
expect($('#sort-name-asc').hasClass('desc')).to.be(false);
expect($('#sort-name-desc').hasClass('asc')).to.be(false);
expect($('#sort-name-desc').hasClass('desc')).to.be(false);
setTimeout(function() {
fireClick($('#sort3')[0]);
fireClick($('#sort-name-desc')[0]);
}, 50);
} else if (sortRun == 4) {
expect($('#sort1').hasClass('asc')).to.be(false);
expect($('#sort1').hasClass('desc')).to.be(false);
expect($('#sort2').hasClass('asc')).to.be(false);
expect($('#sort2').hasClass('desc')).to.be(false);
expect($('#sort3').hasClass('asc')).to.be(false);
expect($('#sort3').hasClass('desc')).to.be(true);
expect($('#sort-name').hasClass('asc')).to.be(false);
expect($('#sort-name').hasClass('desc')).to.be(true);
expect($('#sort-name-asc').hasClass('asc')).to.be(false);
expect($('#sort-name-asc').hasClass('desc')).to.be(false);
expect($('#sort-name-desc').hasClass('asc')).to.be(false);
expect($('#sort-name-desc').hasClass('desc')).to.be(true);
setTimeout(function() {
fireClick($('#sort3')[0]);
fireClick($('#sort-name-desc')[0]);
}, 50);
} else if (sortRun == 5) {
expect($('#sort1').hasClass('asc')).to.be(false);
expect($('#sort1').hasClass('desc')).to.be(false);
expect($('#sort2').hasClass('asc')).to.be(false);
expect($('#sort2').hasClass('desc')).to.be(false);
expect($('#sort3').hasClass('asc')).to.be(false);
expect($('#sort3').hasClass('desc')).to.be(true);
expect($('#sort-name').hasClass('asc')).to.be(false);
expect($('#sort-name').hasClass('desc')).to.be(true);
expect($('#sort-name-asc').hasClass('asc')).to.be(false);
expect($('#sort-name-asc').hasClass('desc')).to.be(false);
expect($('#sort-name-desc').hasClass('asc')).to.be(false);
expect($('#sort-name-desc').hasClass('desc')).to.be(true);
done();
}
});
expect($('#sort1').hasClass('asc')).to.be(false);
expect($('#sort1').hasClass('desc')).to.be(false);
expect($('#sort2').hasClass('asc')).to.be(false);
expect($('#sort2').hasClass('desc')).to.be(false);
expect($('#sort3').hasClass('asc')).to.be(false);
expect($('#sort3').hasClass('desc')).to.be(false);
fireClick($('#sort2')[0]);
expect($('#sort-name').hasClass('asc')).to.be(false);
expect($('#sort-name').hasClass('desc')).to.be(false);
expect($('#sort-name-asc').hasClass('asc')).to.be(false);
expect($('#sort-name-asc').hasClass('desc')).to.be(false);
expect($('#sort-name-desc').hasClass('asc')).to.be(false);
expect($('#sort-name-desc').hasClass('desc')).to.be(false);
fireClick($('#sort-name-asc')[0]);
});

it('buttons should change class when sorting programmatically', function(done) {
list.on('sortComplete', function() {
expect($('#sort1').hasClass('asc')).to.be(true);
expect($('#sort1').hasClass('desc')).to.be(false);
expect($('#sort2').hasClass('asc')).to.be(true);
expect($('#sort2').hasClass('desc')).to.be(false);
expect($('#sort3').hasClass('asc')).to.be(false);
expect($('#sort3').hasClass('desc')).to.be(false);
expect($('#sort-name').hasClass('asc')).to.be(true);
expect($('#sort-name').hasClass('desc')).to.be(false);
expect($('#sort-name-asc').hasClass('asc')).to.be(true);
expect($('#sort-name-asc').hasClass('desc')).to.be(false);
expect($('#sort-name-desc').hasClass('asc')).to.be(false);
expect($('#sort-name-desc').hasClass('desc')).to.be(false);
done();
});
list.sort('name', { order: "asc" });
Expand Down
9 changes: 6 additions & 3 deletions test/test.sort.js
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,8 @@ describe('Sort', function() {
i6.values({ val: "<input value='y' />" });
list.sort('val', {
sortFunction: function(itemA, itemB, options) {
return list.helpers.naturalSort($(itemA.values().val).val(), $(itemB.values().val).val(), options);
options.desc = false;
return list.helpers.naturalSort($(itemA.values()[options.valueName]).val(), $(itemB.values()[options.valueName]).val(), options);
}
});
expect(list.items[0].values().val).to.be.equal("<input value='a' />");
Expand All @@ -279,7 +280,8 @@ describe('Sort', function() {
});
it('should use default custom sort function', function() {
list.sortFunction = function(itemA, itemB, options) {
return list.helpers.naturalSort($(itemA.values().val).val(), $(itemB.values().val).val(), options);
options.desc = false;
return list.helpers.naturalSort($(itemA.values()[options.valueName]).val(), $(itemB.values()[options.valueName]).val(), options);
};
i1.values({ val: "<input value='b' />" });
i2.values({ val: "<input value='a' />" });
Expand All @@ -297,7 +299,8 @@ describe('Sort', function() {
});
it('should use default custom sort function with options', function() {
list.sortFunction = function(itemA, itemB, options) {
return list.helpers.naturalSort($(itemA.values().val).val(), $(itemB.values().val).val(), options);
options.desc = true;
return list.helpers.naturalSort($(itemA.values()[options.valueName]).val(), $(itemB.values()[options.valueName]).val(), options);
};
i1.values({ val: "<input value='b' />" });
i2.values({ val: "<input value='a' />" });
Expand Down

0 comments on commit aa86505

Please sign in to comment.