@@ -206,6 +206,57 @@ describe('table', function() {
206
206
} ) ;
207
207
} ) ;
208
208
209
+ describe ( 'Rendering with partial attribute support' , function ( ) {
210
+ var mockCopy ,
211
+ gd ;
212
+
213
+ afterEach ( destroyGraphDiv ) ;
214
+
215
+ it ( '`Plotly.plot` should render all the columns even if no cell contents were supplied yet' , function ( done ) {
216
+ gd = createGraphDiv ( ) ;
217
+ mockCopy = Lib . extendDeep ( { } , mock ) ;
218
+ delete mockCopy . data [ 0 ] . cells ;
219
+ Plotly . plot ( gd , mockCopy . data , mockCopy . layout ) . then ( function ( ) {
220
+ expect ( gd . data . length ) . toEqual ( 1 ) ;
221
+ expect ( gd . data [ 0 ] . header . values . length ) . toEqual ( 7 ) ;
222
+ expect ( document . querySelectorAll ( '.' + cn . yColumn ) . length ) . toEqual ( 7 ) ;
223
+ expect ( document . querySelectorAll ( '.' + cn . columnCell ) . length ) . toEqual ( 7 * 2 ) ; // both column rows to render
224
+ done ( ) ;
225
+ } ) ;
226
+ } ) ;
227
+
228
+ it ( '`Plotly.plot` should render all columns even if no header contents were supplied yet' , function ( done ) {
229
+ gd = createGraphDiv ( ) ;
230
+ mockCopy = Lib . extendDeep ( { } , mock ) ;
231
+ delete mockCopy . data [ 0 ] . header ;
232
+ Plotly . plot ( gd , mockCopy . data , mockCopy . layout ) . then ( function ( ) {
233
+ expect ( gd . data . length ) . toEqual ( 1 ) ;
234
+ expect ( gd . data [ 0 ] . cells . values . length ) . toEqual ( 7 ) ;
235
+ expect ( document . querySelectorAll ( '.' + cn . yColumn ) . length ) . toEqual ( 7 ) ;
236
+ expect ( document . querySelectorAll ( '.' + cn . columnCell ) . length ) . toEqual ( 7 * 29 ) ;
237
+ expect ( document . querySelectorAll ( '#header' ) . length ) . toEqual ( 7 ) ;
238
+ expect ( document . querySelectorAll ( '#header .' + cn . columnCell ) . length ) . toEqual ( 7 ) ;
239
+ expect ( document . querySelector ( '#header .' + cn . columnCell + ' text' ) . textContent ) . toEqual ( '' ) ;
240
+ done ( ) ;
241
+ } ) ;
242
+ } ) ;
243
+
244
+ it ( '`Plotly.plot` should render all the column headers even if not all header values were supplied' , function ( done ) {
245
+ gd = createGraphDiv ( ) ;
246
+ mockCopy = Lib . extendDeep ( { } , mock ) ;
247
+ mockCopy . data [ 0 ] . header . values = [ 'A' , 'S' , 'D' ] ; // doesn't cover all 7 columns
248
+ Plotly . plot ( gd , mockCopy . data , mockCopy . layout ) . then ( function ( ) {
249
+ expect ( gd . data . length ) . toEqual ( 1 ) ;
250
+ expect ( gd . data [ 0 ] . cells . values . length ) . toEqual ( 7 ) ;
251
+ expect ( document . querySelectorAll ( '.' + cn . yColumn ) . length ) . toEqual ( 7 ) ;
252
+ expect ( document . querySelectorAll ( '#header' ) . length ) . toEqual ( 7 ) ;
253
+ expect ( document . querySelectorAll ( '#header .' + cn . columnCell ) . length ) . toEqual ( 7 ) ;
254
+ expect ( document . querySelector ( '#header .' + cn . columnCell + ' text' ) . textContent ) . toEqual ( 'A' ) ;
255
+ done ( ) ;
256
+ } ) ;
257
+ } ) ;
258
+ } ) ;
259
+
209
260
describe ( 'basic use and basic data restyling' , function ( ) {
210
261
var mockCopy ,
211
262
gd ;
0 commit comments