@@ -268,6 +268,54 @@ adapters.forEach(function (adapter) {
268268 } ) ;
269269 } ) ;
270270
271+ [
272+ ( ) => '-format' ,
273+ ( ) => 'bad-format' ,
274+ ( ) => ( { } ) ,
275+ ( ) => ( { toString :'2-abc' } ) ,
276+ ( ) => ( { toString :'2-abc' , indexOf :777 } ) ,
277+ ( ) => ( { toString :'2-abc' , indexOf :( ) => - 1000 } ) ,
278+ ( ) => ( { toString :'2-abc' , indexOf :( ) => - 1000 , substring :'hi' } ) ,
279+ ( ) => ( { toString :'2-abc' , indexOf :( ) => - 1000 , substring :( ) => 'hi' } ) ,
280+ ( ) => ( { toString :( ) => '2-abc' } ) ,
281+ ( ) => ( { toString :( ) => '2-abc' , indexOf :777 } ) ,
282+ ( ) => ( { toString :( ) => '2-abc' , indexOf :( ) => 12 } ) ,
283+ ( ) => ( { toString :( ) => '2-abc' , indexOf :( ) => 12 , substring :'hi' } ) ,
284+ ( ) => ( { toString :( ) => '2-abc' , indexOf :( ) => 12 , substring :( ) => 'hi' } ) ,
285+ ( { rev } ) => ( { toString :rev } ) ,
286+ ( { rev } ) => ( { toString :rev , indexOf :777 } ) ,
287+ ( { rev } ) => ( { toString :rev , indexOf :( ) => - 1000 } ) ,
288+ ( { rev } ) => ( { toString :rev , indexOf :( ) => - 1000 , substring :'hi' } ) ,
289+ ( { rev } ) => ( { toString :rev , indexOf :( ) => - 1000 , substring :( ) => 'hi' } ) ,
290+ ( { rev } ) => ( { toString :( ) => rev } ) ,
291+ ( { rev } ) => ( { toString :( ) => rev , indexOf :777 } ) ,
292+ ( { rev } ) => ( { toString :( ) => rev , indexOf :( ) => 12 } ) ,
293+ ( { rev } ) => ( { toString :( ) => rev , indexOf :( ) => 12 , substring :'hi' } ) ,
294+ ( { rev } ) => ( { toString :( ) => rev , indexOf :( ) => 12 , substring :( ) => 'hi' } ) ,
295+ ] . forEach ( ( generateRev , idx ) => {
296+ it ( `Modify a doc with illegal rev value #${ idx } ` , async ( ) => {
297+ const db = new PouchDB ( dbs . name ) ;
298+
299+ const info = await db . post ( { test : 'somestuff' } ) ;
300+
301+ let threw ;
302+ try {
303+ await db . put ( {
304+ _id : info . id ,
305+ _rev : generateRev ( info ) ,
306+ another : 'test'
307+ } ) ;
308+ } catch ( err ) {
309+ threw = true ;
310+ err . message . should . equal ( 'Invalid rev format' ) ; // TODO should be err.reason?
311+ }
312+
313+ if ( ! threw ) {
314+ throw new Error ( 'db.put() should have thrown.' ) ;
315+ }
316+ } ) ;
317+ } ) ;
318+
271319 it ( 'Remove doc' , function ( done ) {
272320 var db = new PouchDB ( dbs . name ) ;
273321 db . post ( { test : 'somestuff' } , function ( err , info ) {
0 commit comments