@@ -66,15 +66,25 @@ describe('colCache', function() {
66
66
it ( 'decodes addresses' , function ( ) {
67
67
expect ( colCache . decodeAddress ( 'A1' ) ) . to . deep . equal ( { address :'A1' , col :1 , row :1 , $col$row :'$A$1' } ) ;
68
68
expect ( colCache . decodeAddress ( 'AA11' ) ) . to . deep . equal ( { address :'AA11' , col :27 , row :11 , $col$row :'$AA$11' } ) ;
69
+ } ) ;
70
+
71
+ describe ( 'with a malformed address' , function ( ) {
72
+ it ( 'tolerates a missing row number' , function ( ) {
73
+ expect ( colCache . decodeAddress ( '$B' ) ) . to . deep . equal ( { address :'B' , col :2 , row :undefined , $col$row :'$B$' } ) ;
74
+ } ) ;
69
75
70
- it ( 'convert [sheetName!][$]col[$]row[[$]col[$]row] into address or range structures' , function ( ) {
71
- expect ( colCache . decodeEx ( 'Sheet1!$H$1' ) ) . to . deep . equal ( { $col$row :'$H$1' , address :'H1' , col :8 , row :1 , sheetName :'Sheet1' } ) ;
72
- expect ( colCache . decodeEx ( "'Sheet 1'!$H$1" ) ) . to . deep . equal ( { $col$row :'$H$1' , address :'H1' , col :8 , row :1 , sheetName :'Sheet 1' } ) ;
73
- expect ( colCache . decodeEx ( "'Sheet !$:1'!$H$1" ) ) . to . deep . equal ( { $col$row :'$H$1' , address :'H1' , col :8 , row :1 , sheetName :'Sheet !$:1' } ) ;
74
- expect ( colCache . decodeEx ( "'Sheet !$:1'!#REF!" ) ) . to . deep . equal ( { sheetName :'Sheet !$:1' , error :'#REF!' } ) ;
76
+ it ( 'tolerates a missing column number' , function ( ) {
77
+ expect ( colCache . decodeAddress ( '$2' ) ) . to . deep . equal ( { address :'2' , col :undefined , row :2 , $col$row :'$$2' } ) ;
75
78
} ) ;
76
79
} ) ;
77
80
81
+ it ( 'convert [sheetName!][$]col[$]row[[$]col[$]row] into address or range structures' , function ( ) {
82
+ expect ( colCache . decodeEx ( 'Sheet1!$H$1' ) ) . to . deep . equal ( { $col$row :'$H$1' , address :'H1' , col :8 , row :1 , sheetName :'Sheet1' } ) ;
83
+ expect ( colCache . decodeEx ( "'Sheet 1'!$H$1" ) ) . to . deep . equal ( { $col$row :'$H$1' , address :'H1' , col :8 , row :1 , sheetName :'Sheet 1' } ) ;
84
+ expect ( colCache . decodeEx ( "'Sheet !$:1'!$H$1" ) ) . to . deep . equal ( { $col$row :'$H$1' , address :'H1' , col :8 , row :1 , sheetName :'Sheet !$:1' } ) ;
85
+ expect ( colCache . decodeEx ( "'Sheet !$:1'!#REF!" ) ) . to . deep . equal ( { sheetName :'Sheet !$:1' , error :'#REF!' } ) ;
86
+ } ) ;
87
+
78
88
it ( 'gets address structures (and caches them)' , function ( ) {
79
89
var addr = colCache . getAddress ( 'D5' ) ;
80
90
expect ( addr . address ) . to . equal ( 'D5' ) ;