Keep sort preference for previously sorted columns (#220)

* Keep sort preference for previously sorted columns
This commit is contained in:
Wanam 2019-08-07 23:44:02 +02:00 committed by Jim Brännlund
parent 4299ea2b53
commit b69dde56a3
3 changed files with 23 additions and 5 deletions

View File

@ -144,12 +144,18 @@ function sort(items, key_func, reversed) {
var sort_array = items.map(function(item, i) {
return [key_func(item), i];
});
var multiplier = reversed ? -1 : 1;
sort_array.sort(function(a, b) {
var key_a = a[0];
var key_b = b[0];
return multiplier * (key_a >= key_b ? 1 : -1);
if (key_a == key_b) return 0;
if (reversed) {
return (key_a < key_b ? 1 : -1);
} else {
return (key_a > key_b ? 1 : -1);
}
});
return sort_array.map(function(item) {

View File

@ -28,7 +28,7 @@
<tbody class="rerun results-table-row">
<tr>
<td class="col-result">Rerun</td>
<td class="col-name">rerun.py::test_rexample</td>
<td class="test-1 col-name">rerun.py::test_rexample_1</td>
<td class="col-duration">1.00</td>
<td class="col-links"></td></tr>
<tr>
@ -37,7 +37,7 @@
<tbody class="passed results-table-row">
<tr>
<td class="col-result">Passed</td>
<td class="col-name">rerun.py::test_example</td>
<td class="test-2 col-name">rerun.py::test_example_2</td>
<td class="col-duration">0.00</td>
<td class="col-links"></td></tr>
<tr>
@ -45,9 +45,11 @@
<div class="empty log">No log output captured.</div>
</td>
</tr>
</tbody>
<tbody class="passed results-table-row">
<tr>
<td class="col-result">Passed</td>
<td class="col-name">rerun.py::test_example</td>
<td class="test-3 col-name">rerun.py::test_example_3</td>
<td class="col-duration">0.00</td>
<td class="col-links"></td></tr>
<tr>

View File

@ -21,12 +21,22 @@
sort_column(row_sort);
assert.equal(find_all('.results-table-row')[0].className, first_element_now);
}
//check col-name, tests should be in this order test-1 => (test-2 => test-3) on col-name
assert.equal(find_all('.col-name')[1].className, 'test-2 col-name');
//result
sort_column_test('[col=result]',
'rerun results-table-row', 'passed results-table-row');
//make sure sorting the result column does not change the tests order in the col-name
//tests should be in this order (test-2 => test-3) => test1 on col-name
assert.equal(find_all('.col-name')[0].className, 'test-2 col-name');
sort_column_test('[col=result]',
'passed results-table-row', 'rerun results-table-row');
//name
sort_column_test('[col=name]',
'rerun results-table-row', 'passed results-table-row');