annotate default/node_modules/tablesaw/test-qunit/tablesaw_test.js @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 (function($) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2 /*
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 ======== A Handy Little QUnit Reference ========
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 http://api.qunitjs.com/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6 Test methods:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 QUnit.module(name, {[setup][ ,teardown]})
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8 QUnit.test(name, callback)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 expect(numberOfAssertions)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10 stop(increment)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 start(decrement)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12 Test assertions:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 assert.ok(value, [message])
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 assert.equal(actual, expected, [message])
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 notEqual(actual, expected, [message])
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16 deepEqual(actual, expected, [message])
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 notDeepEqual(actual, expected, [message])
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 strictEqual(actual, expected, [message])
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 notStrictEqual(actual, expected, [message])
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 throws(block, [expected], [message])
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 var tableHtml = [
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 '<table %s>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 '<thead>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26 '<tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 '<th data-tablesaw-priority="1" data-tablesaw-sortable-col>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 '<th data-tablesaw-sortable-col data-tablesaw-sortable-numeric>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44 '<th>Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45 '<th data-tablesaw-priority="6">Header</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46 '</tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47 '</thead>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48 '<tbody>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 '<tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 '<td>Body Row 1</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51 '<td>1</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
61 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
62 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
63 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
64 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
65 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
66 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
67 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
68 '<td>This column text is designed to make the columns really wide.</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
69 '</tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
70 '<tr><td>Body Row 2</td><td>2</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td></tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
71 '<tr><td>Body Row 10</td><td>10</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td></tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
72 '<tr><td>body row 4</td><td>10</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td></tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
73 '<tr><td>Body Row 1.2</td><td>1.2</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td><td>A</td></tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
74 '</tbody>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
75 '</table>'].join(''),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
76 $fixture,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
77 $table,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
78 setup = function( tableAttributes ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
79 return function() {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
80 $fixture = $( '#qunit-fixture' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
81 // We use columntoggle here to make the cell html comparisons easier (stack adds elements to each cell)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
82 $fixture.html( tableHtml.replace( /\%s/, tableAttributes ) );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
83 $( document ).trigger( 'enhance.tablesaw' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
84
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
85 $table = $fixture.find( 'table' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
86 };
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
87 };
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
88
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
89 QUnit.module( 'Global' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
90 QUnit.test( 'Initialization', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
91 assert.ok( $( 'html' ).is( '.tablesaw-enhanced' ), 'Has initialization class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
92 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
93
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
94 QUnit.module( 'tablesaw is opt-in only, no default', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
95 beforeEach: setup( '' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
96 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
97
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
98 QUnit.test( 'Initialization', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
99 assert.ok( $table[ 0 ].className.indexOf( 'tablesaw-' ) === -1, 'Does not have initialization class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
100 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
101
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
102 QUnit.module( 'tablesaw Stack', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
103 beforeEach: setup( 'data-tablesaw-mode="stack"' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
104 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
105
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
106 QUnit.test( 'Initialization', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
107 assert.ok( $table.is( '.tablesaw-stack' ), 'Has initialization class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
108 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
109
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
110 QUnit.module( 'tablesaw Column Toggle', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
111 beforeEach: setup( 'data-tablesaw-mode="columntoggle"' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
112 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
113
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
114 QUnit.test( 'Initialization', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
115 assert.ok( $table.is( '.tablesaw-columntoggle' ), 'Has initialization class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
116 assert.ok( $jQ( $table.find( 'tbody td' )[ 0 ] ).is( ':visible' ), 'First cell is visible' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
117 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
118
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
119 QUnit.test( 'Show Dialog', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
120 assert.ok( !$jQ( $fixture.find( '.tablesaw-columntoggle-popup' )[ 0 ] ).is( ':visible' ), 'Dialog hidden' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
121
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
122 $table.prev().find( '.tablesaw-columntoggle-btn' ).trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
123
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
124 assert.ok( $jQ( $fixture.find( '.tablesaw-columntoggle-popup' )[ 0 ] ).is( ':visible' ), 'Dialog visible after button click' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
125 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
126
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
127 QUnit.test( 'Toggle Column', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
128 var $cell = $table.find( 'tbody td' ).eq( 0 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
129
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
130 assert.strictEqual( $cell.is( '.tablesaw-toggle-cellhidden' ), false, 'First cell is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
131
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
132 $table.prev().find( '.tablesaw-columntoggle-btn' ).trigger( 'click' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
133 .next().find( 'input[type="checkbox"]' ).trigger( 'click' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
134
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
135 // close dialog
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
136 $( '.tablesaw-columntoggle-popup .close' ).trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
137
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
138 assert.strictEqual( $cell.is( '.tablesaw-toggle-cellhidden' ), true, 'First cell is hidden after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
139 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
140
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
141
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
142 QUnit.module( 'tablesaw Swipe', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
143 beforeEach: setup( 'data-tablesaw-mode="swipe"' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
144 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
145
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
146 QUnit.test( 'Initialization', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
147 var $buttons = $table.prev().find( '.tablesaw-nav-btn' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
148 assert.ok( $table.is( '.tablesaw-swipe' ), 'Has initialization class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
149 assert.equal( $buttons.length, 2, 'Has buttons.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
150 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
151
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
152 QUnit.test( 'Navigate with buttons', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
153 var $buttons = $table.prev().find( '.tablesaw-nav-btn' ),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
154 $prev = $buttons.filter( '.left' ),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
155 $next = $buttons.filter( '.right' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
156
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
157 assert.ok( $prev.is( '.disabled' ), 'Starts at far left, previous button disabled.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
158 assert.ok( !$next.is( '.disabled' ), 'Starts at far left, next button enabled.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
159 assert.ok( $table.find( 'tbody td:first-child' ).not( '.tablesaw-swipe-cellhidden' ), 'First column is visible' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
160
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
161 $next.trigger( 'click' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
162 assert.ok( !$prev.is( '.disabled' ), 'Previous button enabled.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
163 assert.ok( $table.find( 'tbody td:first-child' ).is( '.tablesaw-swipe-cellhidden' ), 'First column is hidden after click' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
164 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
165
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
166 QUnit.module( 'tablesaw Sortable without a Mode', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
167 beforeEach: setup( 'data-tablesaw-sortable' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
168 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
169
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
170 QUnit.test( 'Sortable still initializes without a data-tablesaw-mode', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
171 assert.ok( $table.is( '.tablesaw-sortable' ), 'Has initialization class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
172 assert.ok( $table.find( '.tablesaw-sortable-head' ).length > 0, 'Header has sort class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
173 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
174
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
175 QUnit.module( 'tablesaw Sortable', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
176 beforeEach: setup( 'data-tablesaw-mode="columntoggle" data-tablesaw-sortable' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
177 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
178
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
179 QUnit.test( 'Initialization', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
180 assert.ok( $table.is( '.tablesaw-sortable' ), 'Has initialization class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
181 assert.ok( $table.find( '.tablesaw-sortable-head' ).length > 0, 'Header has sort class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
182 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
183
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
184 QUnit.test( 'Can sort descending', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
185 var previousRow1Text = $table.find( 'tbody tr td' ).eq( 0 ).text(),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
186 $sortButton = $table.find( '.tablesaw-sortable-head button' ).eq( 0 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
187
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
188 $sortButton.trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
189
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
190 assert.equal( $table.find( 'tbody tr td' ).eq( 0 ).text(), previousRow1Text, 'First row is sorted ascending' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
191
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
192 $sortButton.trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
193
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
194 assert.notEqual( $table.find( 'tbody tr td' ).eq( 0 ).text(), previousRow1Text, 'First row is sorted descending' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
195 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
196
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
197 QUnit.test( 'Can sort numeric descending', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
198 var $sortButton = $table.find( '.tablesaw-sortable-head button' ).eq( 1 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
199
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
200 $sortButton.trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
201
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
202 assert.equal( $table.find( "tbody tr" ).eq( 0 ).find( "td" ).eq( 1 ).html(), '1', 'First row is sorted ascending' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
203
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
204 $sortButton.trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
205
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
206 assert.equal( $table.find( "tbody tr" ).eq( 0 ).find( "td" ).eq( 1 ).html(), '10', 'First row is sorted descending' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
207 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
208
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
209 QUnit.test( 'Sort works with floats', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
210 var previousText = "Body Row 1.2",
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
211 $sortButton = $table.find( '.tablesaw-sortable-head button' ).eq( 0 ),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
212 rows = $table.find( 'tbody tr' ).length;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
213
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
214 $sortButton.trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
215 assert.equal( $table.find( "tbody tr" ).eq( 1 ).find( "td" ).eq( 0 ).text(), previousText, previousText + ' is in the second row (descending)' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
216
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
217 $sortButton.trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
218 assert.equal( $table.find( "tbody tr" ).eq( rows - 2 ).find( "td" ).eq( 0 ).text(), previousText, previousText + ' is in row ' + ( rows - 2 ) + ' of ' + rows + ' (ascending)' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
219
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
220 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
221
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
222 QUnit.test( 'Sort is case insensitive', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
223 var previousText = "body row 4",
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
224 $sortButton = $table.find( '.tablesaw-sortable-head button' ).eq( 0 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
225
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
226 $sortButton.trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
227 assert.equal( $table.find( "tbody tr" ).eq( 4 ).find( "td" ).eq( 0 ).text(), previousText, previousText + ' is in the fifth row (ascending)' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
228
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
229 $sortButton.trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
230 assert.equal( $table.find( "tbody tr" ).eq( 0 ).find( "td" ).eq( 0 ).text(), previousText, previousText + ' is in the first row (descending)' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
231
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
232 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
233
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
234 QUnit.module( 'tablesaw Sortable Switcher', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
235 beforeEach: setup( 'data-tablesaw-mode="columntoggle" data-tablesaw-sortable data-tablesaw-sortable-switch' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
236 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
237
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
238 QUnit.test( 'Can sort descending with switcher', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
239 var previousRow1Text = $table.find( 'tbody tr td' ).eq( 0 ).text(),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
240 $switcher = $table.prev().find( 'select' ).eq( 0 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
241
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
242 $switcher.val( '0_desc' ).trigger( 'change' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
243
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
244 assert.notEqual( $table.find( 'tbody tr td' ).eq( 0 ).text(), previousRow1Text, 'First row is sorted descending' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
245
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
246 $switcher.val( '0_asc' ).trigger( 'change' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
247
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
248 assert.equal( $table.find( 'tbody tr td' ).eq( 0 ).text(), previousRow1Text, 'First row is sorted ascending' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
249 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
250
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
251 QUnit.test( 'Can sort numeric descending with switcher', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
252 var $switcher = $table.prev().find( 'select' ).eq( 0 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
253
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
254 $switcher.val( '1_desc' ).trigger( 'change' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
255
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
256 assert.equal( $table.find( "tbody tr" ).eq( 0 ).find( "td" ).eq( 1 ).html(), '10', 'First row is sorted descending' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
257
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
258 $switcher.val( '1_asc' ).trigger( 'change' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
259
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
260 assert.equal( $table.find( "tbody tr" ).eq( 0 ).find( "td" ).eq( 1 ).html(), '1', 'First row is sorted ascending' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
261 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
262
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
263 QUnit.module( 'tablesaw Mini Map', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
264 beforeEach: setup( 'data-tablesaw-mode="columntoggle" data-tablesaw-minimap' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
265 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
266
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
267 QUnit.test( 'Initialization', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
268 var $minimap = $table.prev().find( '.minimap' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
269 assert.ok( $minimap.length, 'Minimap exists.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
270 // assert.ok( window.Tablesaw.MiniMap.showMiniMap( $table ), 'showMiniMap return true.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
271 assert.equal( $minimap.css( "display" ), "block", 'Minimap is visible.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
272 assert.equal( $minimap.find( 'li' ).length, $table.find( 'tbody tr' ).eq( 0 ) .find( 'td' ).length, 'Minimap has same number of dots as columns.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
273 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
274
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
275 QUnit.module( 'tablesaw Mode Switch', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
276 beforeEach: setup( 'data-tablesaw-mode="stack" data-tablesaw-mode-switch' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
277 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
278
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
279 QUnit.test( 'Initialization', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
280 var $switcher = $table.prev().find( '.tablesaw-modeswitch' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
281 assert.ok( $switcher.length, 'Mode Switcher exists.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
282 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
283
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
284 QUnit.test( 'Can switch to Swipe mode', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
285 var $switcher = $table.prev().find( '.tablesaw-modeswitch' ).find( 'select' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
286 assert.ok( !$table.is( '.tablesaw-swipe' ), 'Doesn’t have class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
287 $switcher.val( 'swipe' ).trigger( 'change' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
288 assert.ok( $table.is( '.tablesaw-swipe' ), 'Has class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
289 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
290
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
291 QUnit.test( 'Can switch to Column Toggle mode', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
292 var $switcher = $table.prev().find( '.tablesaw-modeswitch' ).find( 'select' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
293 assert.ok( !$table.is( '.tablesaw-columntoggle' ), 'Doesn’t have class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
294 $switcher.val( 'columntoggle' ).trigger( 'change' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
295 assert.ok( $table.is( '.tablesaw-columntoggle' ), 'Has class.' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
296 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
297
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
298 QUnit.module( 'tablesaw Stack Hide Empty', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
299 beforeEach: function(){
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
300 $fixture = $( '#qunit-fixture' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
301 $fixture.html( tableHtml.replace( /\%s/, 'data-tablesaw-mode="stack" data-tablesaw-hide-empty' ) );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
302 $fixture.find( 'table tbody tr' ).eq( 3 ).find( 'td' ).eq( 4 ).html('');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
303 $( document ).trigger( 'enhance.tablesaw' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
304 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
305 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
306
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
307 QUnit.test( 'Empty cells are hidden', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
308 $fixture = $( '#qunit-fixture' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
309 var testCell = $fixture.find( 'table tbody tr' ).eq( 3 ).find( 'td' ).eq( 4 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
310
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
311 //not sure how to better test this
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
312 if(window.innerWidth < 640){
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
313 assert.ok( $jQ( testCell[ 0 ] ).is(':hidden'));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
314 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
315 else{
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
316 assert.ok( $jQ( testCell[ 0 ] ).is(':visible'));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
317 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
318 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
319
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
320 QUnit.module ('tablesaw colspans', {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
321 beforeEach: function() {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
322 var colspannedHTML = [
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
323 '<table %s>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
324 '<thead>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
325 '<tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
326 '<th data-tablesaw-priority="1" colspan="2">Header 1</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
327 '<th data-tablesaw-priority="2" colspan="2">Header 2</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
328 '<th data-tablesaw-priority="6">Header 3</th>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
329 '</tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
330 '</thead>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
331 '<tbody>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
332 '<tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
333 '<td>Body Row 1</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
334 '<td>1</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
335 '<td>Small 1</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
336 '<td>Small 2</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
337 '<td>Small 3</td>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
338 '</tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
339 '<tr><td>Body Row 2</td><td>2</td><td colspan="2">Fat cell</td><td>After fat</td></tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
340 '<tr><td>Body Row 10</td><td>10</td><td>A</td><td>A</td><td>A</td></tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
341 '<tr><td>body row 4</td><td>10</td><td>A</td><td>A</td><td>A</td></tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
342 '<tr><td>Body Row 1.2</td><td>1.2</td><td>A</td><td>A</td><td>A</td></tr>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
343 '</tbody>',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
344 '</table>'].join('');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
345 $fixture = $( '#qunit-fixture' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
346 $fixture.html( colspannedHTML.replace( /\%s/, 'data-tablesaw-mode="columntoggle" data-tablesaw-minimap data-tablesaw-no-labels' ) );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
347 $table = $fixture.find( 'table' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
348 $( document ).trigger( 'enhance.tablesaw' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
349 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
350 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
351
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
352 QUnit.test('Hide multicolumn header and single column cells', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
353 var $firstCell = $table.find( 'tbody td' ).eq( 0 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
354 var $secondCell = $table.find( 'tbody td' ).eq( 1 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
355
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
356 assert.strictEqual( $firstCell.is( '.tablesaw-toggle-cellhidden' ), false, 'First cell is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
357 assert.strictEqual( $secondCell.is( '.tablesaw-toggle-cellhidden' ), false, 'Second cell is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
358
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
359 $table.prev().find( '.tablesaw-columntoggle-btn' ).trigger( 'click' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
360 .next().find( 'input[type="checkbox"]' ).first().trigger( 'click' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
361
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
362 // close dialog
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
363 $( '.tablesaw-columntoggle-popup .close' ).trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
364
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
365 assert.strictEqual( $firstCell.is( '.tablesaw-toggle-cellhidden' ), true, 'First cell is hidden after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
366 assert.strictEqual( $secondCell.is( '.tablesaw-toggle-cellhidden' ), true, 'Second cell is hidden after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
367 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
368
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
369 QUnit.test('Hide multicolumn header and multi column cells', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
370 var $firstRowCell1 = $table.find( 'tbody tr' ).eq( 0 ).find( 'td' ).eq( 2 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
371 var $firstRowCell2 = $table.find( 'tbody tr' ).eq( 0 ).find( 'td' ).eq( 3 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
372 var $firstRowCell3 = $table.find( 'tbody tr' ).eq( 0 ).find( 'td' ).eq( 4 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
373 var $secondRowFatCell = $table.find( 'tbody tr' ).eq( 1 ).find( 'td' ).eq( 2 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
374 var $secondRowLastCell = $table.find( 'tbody tr' ).eq( 1 ).find( 'td' ).eq( 3 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
375
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
376 assert.strictEqual( $firstRowCell1.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 0,2 cell is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
377 assert.strictEqual( $firstRowCell2.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 0,3 is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
378 assert.strictEqual( $firstRowCell3.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 0,4 is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
379 assert.strictEqual( $secondRowFatCell.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 1,2-3 is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
380 assert.strictEqual( $secondRowLastCell.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 1,4 is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
381
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
382 var middlecheck = $($table.prev().find( '.tablesaw-columntoggle-btn' ).trigger( 'click' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
383 .next().find( 'input[type="checkbox"]' )[1]);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
384 if (!middlecheck[0].checked) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
385 middlecheck.trigger( 'click' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
386 assert.strictEqual ( middlecheck[0].checked, true, "Toggle button wasn't initially true and then should've been turned on.");
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
387 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
388 middlecheck.trigger( 'click' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
389 assert.strictEqual ( middlecheck[0].checked, false, "Toggle button wasn't unchecked.");
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
390
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
391 // close dialog
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
392 $( '.tablesaw-columntoggle-popup .close' ).trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
393
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
394 assert.strictEqual( $firstRowCell1.is( '.tablesaw-toggle-cellhidden' ), true, 'Cell 0,2 cell is hidden after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
395 assert.strictEqual( $firstRowCell2.is( '.tablesaw-toggle-cellhidden' ), true, 'Cell 0,3 is hidden after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
396 assert.strictEqual( $firstRowCell3.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 0,4 is still visible after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
397 assert.strictEqual( $secondRowFatCell.is( '.tablesaw-toggle-cellhidden' ), true, 'Cell 1,2-3 is hidden after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
398 assert.strictEqual( $secondRowLastCell.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 1,4 is still visible after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
399 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
400
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
401 QUnit.test('Hide single column header and not multi column cells', function( assert ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
402 var $firstRowCell1 = $table.find( 'tbody tr' ).eq( 0 ).find( 'td' ).eq( 2 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
403 var $firstRowCell2 = $table.find( 'tbody tr' ).eq( 0 ).find( 'td' ).eq( 3 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
404 var $firstRowCell3 = $table.find( 'tbody tr' ).eq( 0 ).find( 'td' ).eq( 4 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
405 var $secondRowFatCell = $table.find( 'tbody tr' ).eq( 1 ).find( 'td' ).eq( 2 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
406 var $secondRowLastCell = $table.find( 'tbody tr' ).eq( 1 ).find( 'td' ).eq( 3 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
407
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
408 assert.strictEqual( $firstRowCell1.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 0,2 cell is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
409 assert.strictEqual( $firstRowCell2.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 0,3 is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
410 assert.strictEqual( $firstRowCell3.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 0,4 is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
411 assert.strictEqual( $secondRowFatCell.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 1,2-3 is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
412 assert.strictEqual( $secondRowLastCell.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 1,4 is visible before checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
413
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
414 var lastcheck = $table.prev().find( '.tablesaw-columntoggle-btn' ).trigger( 'click' )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
415 .next().find( 'input[type="checkbox"]').last();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
416 if (!lastcheck[0].checked) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
417 lastcheck.trigger( 'click' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
418 assert.strictEqual ( lastcheck[0].checked, true, "Toggle button wasn't initially true and then should've been turned on.");
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
419 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
420 lastcheck.trigger( 'click' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
421 assert.strictEqual ( lastcheck[0].checked, false, "Toggle button wasn't unchecked.");
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
422
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
423 // close dialog
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
424 $( '.tablesaw-columntoggle-popup .close' ).trigger( "click" );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
425
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
426 assert.strictEqual( $firstRowCell1.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 0,2 cell is visible after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
427 assert.strictEqual( $firstRowCell2.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 0,3 is visible after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
428 assert.strictEqual( $firstRowCell3.is( '.tablesaw-toggle-cellhidden' ), true, 'Cell 0,4 is hidden after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
429 assert.strictEqual( $secondRowFatCell.is( '.tablesaw-toggle-cellhidden' ), false, 'Cell 1,2-3 is visible after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
430 assert.strictEqual( $secondRowLastCell.is( '.tablesaw-toggle-cellhidden' ), true, 'Cell 1,4 is hidden after checkbox unchecked' );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
431 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
432
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
433 }( window.shoestring || window.jQuery || window.$jQ ));