@@ -246,6 +246,55 @@ module.exports = function() {
246
246
} ) ;
247
247
} ) ;
248
248
249
+ it ( 'does not fail when resubmitting a create op' , function ( done ) {
250
+ var backend = this . backend ;
251
+ var connection = backend . connect ( ) ;
252
+ var submitted = false ;
253
+ backend . use ( 'submit' , function ( request , next ) {
254
+ if ( ! submitted ) {
255
+ submitted = true ;
256
+ connection . close ( ) ;
257
+ backend . connect ( connection ) ;
258
+ }
259
+ next ( ) ;
260
+ } ) ;
261
+
262
+ var doc = connection . get ( 'dogs' , 'fido' ) ;
263
+ doc . create ( { age : 3 } , function ( error ) {
264
+ expect ( doc . version ) . to . equal ( 1 ) ;
265
+ done ( error ) ;
266
+ } ) ;
267
+ } ) ;
268
+
269
+ it ( 'does not fail when resubmitting a create op on a doc that was deleted' , function ( done ) {
270
+ var backend = this . backend ;
271
+ var connection1 = backend . connect ( ) ;
272
+ var connection2 = backend . connect ( ) ;
273
+ var doc1 = connection1 . get ( 'dogs' , 'fido' ) ;
274
+ var doc2 = connection2 . get ( 'dogs' , 'fido' ) ;
275
+
276
+ async . series ( [
277
+ doc1 . create . bind ( doc1 , { age : 3 } ) ,
278
+ doc1 . del . bind ( doc1 ) ,
279
+ function ( next ) {
280
+ var submitted = false ;
281
+ backend . use ( 'submit' , function ( request , next ) {
282
+ if ( ! submitted ) {
283
+ submitted = true ;
284
+ connection2 . close ( ) ;
285
+ backend . connect ( connection2 ) ;
286
+ }
287
+ next ( ) ;
288
+ } ) ;
289
+
290
+ doc2 . create ( { name : 'Fido' } , function ( error ) {
291
+ expect ( doc2 . version ) . to . equal ( 3 ) ;
292
+ next ( error ) ;
293
+ } ) ;
294
+ }
295
+ ] , done ) ;
296
+ } ) ;
297
+
249
298
it ( 'server fetches and transforms by already committed op' , function ( done ) {
250
299
var doc = this . backend . connect ( ) . get ( 'dogs' , 'fido' ) ;
251
300
var doc2 = this . backend . connect ( ) . get ( 'dogs' , 'fido' ) ;
0 commit comments