1
+ const { promisify } = require ( 'util' )
1
2
const test = require ( 'tape' )
2
3
const randomAccessTest = require ( 'random-access-test' )
3
4
const racf = require ( './' )
@@ -14,20 +15,8 @@ test('write/read concurrent requests', async t => {
14
15
const st = storage ( 'random' )
15
16
16
17
const rand = ( min , max ) => Math . floor ( Math . random ( ) * max ) + min
17
-
18
- const read = ( ...args ) => new Promise ( ( resolve , reject ) => {
19
- st . read ( ...args , ( err ) => {
20
- if ( err ) return reject ( err )
21
- resolve ( )
22
- } )
23
- } )
24
-
25
- const write = ( ...args ) => new Promise ( ( resolve , reject ) => {
26
- st . write ( ...args , ( err ) => {
27
- if ( err ) return reject ( err )
28
- resolve ( )
29
- } )
30
- } )
18
+ const read = promisify ( st . read . bind ( st ) )
19
+ const write = promisify ( st . write . bind ( st ) )
31
20
32
21
try {
33
22
await new Promise ( resolve => st . open ( ( ) => resolve ( ) ) )
@@ -55,3 +44,24 @@ test('write/read concurrent requests', async t => {
55
44
t . end ( err )
56
45
}
57
46
} )
47
+
48
+ test ( 'write concurrent requests over the same offset different size' , async t => {
49
+ const st = storage ( 'random' )
50
+
51
+ const write = promisify ( st . write . bind ( st ) )
52
+
53
+ try {
54
+ await new Promise ( resolve => st . open ( ( ) => resolve ( ) ) )
55
+
56
+ await Promise . all ( [
57
+ write ( 0 , Buffer . alloc ( 10 ) ) ,
58
+ write ( 0 , Buffer . alloc ( 1 ) ) ,
59
+ write ( 0 , Buffer . alloc ( 5 ) )
60
+ ] )
61
+
62
+ t . pass ( 'should write multiple requests over the same offset different size' )
63
+ t . end ( )
64
+ } catch ( err ) {
65
+ t . end ( err )
66
+ }
67
+ } )
0 commit comments