Skip to content

Commit 276abed

Browse files
authored
Update Standard and port tests to Brittle (#14)
* Implement as class and port tests to Brittle * Ignore coverage * Update RAS * Use `RAM` * Ticks
1 parent 010a294 commit 276abed

File tree

6 files changed

+80
-70
lines changed

6 files changed

+80
-70
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
node_modules
2+
coverage
23
package-lock.json

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ npm install random-access-memory
99
## Usage
1010

1111
``` js
12-
var ram = require('random-access-memory')
13-
var file = ram()
12+
const RAM = require('random-access-memory')
13+
const file = new RAM()
1414

1515
file.write(0, Buffer.from('hello'), function () {
1616
file.write(5, Buffer.from(' world'), function () {
@@ -19,10 +19,10 @@ file.write(0, Buffer.from('hello'), function () {
1919
})
2020
```
2121

22-
You can also initialize a `ram` instance with a `Buffer`:
22+
You can also initialize a `RAM` instance with a `Buffer`:
2323

2424
```js
25-
var file = ram(Buffer.from('hello world'))
25+
const file = new RAM(Buffer.from('hello world'))
2626
```
2727

2828
## License

example.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
const ram = require('./index')
1+
const RAM = require('.')
22

3-
const mem = ram()
3+
const mem = new RAM()
44

55
mem.write(0, Buffer.from('hello world'), function () {
66
mem.read(0, 11, (_, data) => console.log(data.toString()))

index.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ module.exports = class RAM extends RandomAccess {
88
constructor (opts) {
99
super()
1010

11-
if (typeof opts === 'number') opts = {length: opts}
11+
if (typeof opts === 'number') opts = { length: opts }
1212
if (!opts) opts = {}
1313

1414
if (b4a.isBuffer(opts)) {
15-
opts = {length: opts.length, buffer: opts}
15+
opts = { length: opts.length, buffer: opts }
1616
}
1717
if (!isOptions(opts)) opts = {}
1818

@@ -24,13 +24,13 @@ module.exports = class RAM extends RandomAccess {
2424
}
2525

2626
_stat (req) {
27-
req.callback(null, {size: this.length})
27+
req.callback(null, { size: this.length })
2828
}
2929

3030
_write (req) {
31-
var i = Math.floor(req.offset / this.pageSize)
32-
var rel = req.offset - i * this.pageSize
33-
var start = 0
31+
let i = Math.floor(req.offset / this.pageSize)
32+
let rel = req.offset - i * this.pageSize
33+
let start = 0
3434

3535
const len = req.offset + req.size
3636
if (len > this.length) this.length = len
@@ -51,9 +51,9 @@ module.exports = class RAM extends RandomAccess {
5151
}
5252

5353
_read (req) {
54-
var i = Math.floor(req.offset / this.pageSize)
55-
var rel = req.offset - i * this.pageSize
56-
var start = 0
54+
let i = Math.floor(req.offset / this.pageSize)
55+
let rel = req.offset - i * this.pageSize
56+
let start = 0
5757

5858
if (req.offset + req.size > this.length) {
5959
return req.callback(new Error('Could not satisfy length'), null)
@@ -76,12 +76,12 @@ module.exports = class RAM extends RandomAccess {
7676
}
7777

7878
_del (req) {
79-
var i = Math.floor(req.offset / this.pageSize)
80-
var rel = req.offset - i * this.pageSize
81-
var start = 0
79+
let i = Math.floor(req.offset / this.pageSize)
80+
let rel = req.offset - i * this.pageSize
81+
let start = 0
8282

8383
if (rel && req.offset + req.size >= this.length) {
84-
var buf = this.buffers[i]
84+
const buf = this.buffers[i]
8585
if (buf) buf.fill(0, rel)
8686
}
8787

@@ -113,7 +113,7 @@ module.exports = class RAM extends RandomAccess {
113113
}
114114

115115
_page (i, upsert) {
116-
var page = this.buffers[i]
116+
let page = this.buffers[i]
117117
if (page || !upsert) return page
118118
page = this.buffers[i] = b4a.alloc(this.pageSize)
119119
return page
@@ -122,7 +122,7 @@ module.exports = class RAM extends RandomAccess {
122122
toBuffer () {
123123
const buf = b4a.alloc(this.length)
124124

125-
for (var i = 0; i < this.buffers.length; i++) {
125+
for (let i = 0; i < this.buffers.length; i++) {
126126
if (this.buffers[i]) b4a.copy(this.buffers[i], buf, i * this.pageSize)
127127
}
128128

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
"description": "Exposes the same interface as random-access-file but instead of writing/reading data to a file it maintains it in memory",
55
"main": "index.js",
66
"scripts": {
7-
"test": "standard && tape test.js"
7+
"test": "standard && brittle test.js"
88
},
99
"dependencies": {
1010
"b4a": "^1.1.0",
1111
"is-options": "^1.0.1",
1212
"random-access-storage": "^2.1.0"
1313
},
1414
"devDependencies": {
15-
"standard": "^11.0.1",
16-
"tape": "^4.9.0"
15+
"brittle": "^2.3.1",
16+
"standard": "^17.0.0"
1717
},
1818
"repository": {
1919
"type": "git",

test.js

Lines changed: 55 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,91 @@
1-
const tape = require('tape')
2-
const RAM = require('./')
1+
const test = require('brittle')
2+
const RAM = require('.')
3+
4+
test('write and read', function (t) {
5+
t.plan(3)
36

4-
tape('write and read', function (t) {
57
const file = new RAM()
68

79
file.write(0, Buffer.from('hello'), function (err) {
8-
t.error(err, 'no error')
10+
t.absent(err, 'no error')
911
file.read(0, 5, function (err, buf) {
10-
t.error(err, 'no error')
11-
t.same(buf, Buffer.from('hello'))
12-
t.end()
12+
t.absent(err, 'no error')
13+
t.alike(buf, Buffer.from('hello'))
1314
})
1415
})
1516
})
1617

17-
tape('read empty', function (t) {
18+
test('read empty', function (t) {
19+
t.plan(2)
20+
1821
const file = new RAM()
1922

2023
file.read(0, 0, function (err, buf) {
21-
t.error(err, 'no error')
22-
t.same(buf, Buffer.alloc(0), 'empty buffer')
23-
t.end()
24+
t.absent(err, 'no error')
25+
t.alike(buf, Buffer.alloc(0), 'empty buffer')
2426
})
2527
})
2628

27-
tape('read range > file', function (t) {
29+
test('read range > file', function (t) {
30+
t.plan(1)
31+
2832
const file = new RAM()
2933

3034
file.read(0, 5, function (err, buf) {
3135
t.ok(err, 'not satisfiable')
32-
t.end()
3336
})
3437
})
3538

36-
tape('random access write and read', function (t) {
39+
test('random access write and read', function (t) {
40+
t.plan(8)
41+
3742
const file = new RAM()
3843

3944
file.write(10, Buffer.from('hi'), function (err) {
40-
t.error(err, 'no error')
45+
t.absent(err, 'no error')
4146
file.write(0, Buffer.from('hello'), function (err) {
42-
t.error(err, 'no error')
47+
t.absent(err, 'no error')
4348
file.read(10, 2, function (err, buf) {
44-
t.error(err, 'no error')
45-
t.same(buf, Buffer.from('hi'))
49+
t.absent(err, 'no error')
50+
t.alike(buf, Buffer.from('hi'))
4651
file.read(0, 5, function (err, buf) {
47-
t.error(err, 'no error')
48-
t.same(buf, Buffer.from('hello'))
52+
t.absent(err, 'no error')
53+
t.alike(buf, Buffer.from('hello'))
4954
file.read(5, 5, function (err, buf) {
50-
t.error(err, 'no error')
51-
t.same(buf, Buffer.from([0, 0, 0, 0, 0]))
52-
t.end()
55+
t.absent(err, 'no error')
56+
t.alike(buf, Buffer.from([0, 0, 0, 0, 0]))
5357
})
5458
})
5559
})
5660
})
5761
})
5862
})
5963

60-
tape('buffer constructor', function (t) {
64+
test('buffer constructor', function (t) {
65+
t.plan(2)
66+
6167
const file = new RAM(Buffer.from('contents'))
6268

6369
file.read(0, 7, function (err, buf) {
64-
t.error(err)
65-
t.deepEqual(buf, Buffer.from('content'))
66-
t.end()
70+
t.absent(err)
71+
t.alike(buf, Buffer.from('content'))
6772
})
6873
})
6974

70-
tape('not sync', function (t) {
75+
test('not sync', function (t) {
76+
t.plan(3)
77+
7178
const file = new RAM()
7279
let sync = true
80+
7381
file.write(10, Buffer.from('hi'), function () {
74-
t.notOk(sync)
82+
t.absent(sync)
7583
sync = true
7684
file.write(0, Buffer.from('hello'), function () {
77-
t.notOk(sync)
85+
t.absent(sync)
7886
sync = true
7987
file.read(10, 2, function () {
80-
t.notOk(sync)
81-
t.end()
88+
t.absent(sync)
8289
})
8390
sync = false
8491
})
@@ -87,7 +94,9 @@ tape('not sync', function (t) {
8794
sync = false
8895
})
8996

90-
tape('delete', function (t) {
97+
test('delete', function (t) {
98+
t.plan(6)
99+
91100
const pageSize = 1024
92101
const file = new RAM({ pageSize })
93102

@@ -96,34 +105,34 @@ tape('delete', function (t) {
96105
const expected = Buffer.alloc(10, 0xff)
97106

98107
file.write(0, orig, function (err) {
99-
t.error(err, 'no error')
108+
t.absent(err, 'no error')
100109
file.read(0, file.length, function (err, buf) {
101-
t.error(err, 'no error')
102-
t.same(buf, orig)
110+
t.absent(err, 'no error')
111+
t.alike(buf, orig)
103112
file.del(10, Infinity, function (err) {
104-
t.error(err, 'no error')
113+
t.absent(err, 'no error')
105114
file.read(0, file.length, function (err, buf) {
106-
t.error(err, 'no error')
107-
t.same(buf, expected)
108-
t.end()
115+
t.absent(err, 'no error')
116+
t.alike(buf, expected)
109117
})
110118
})
111119
})
112120
})
113121
})
114122

115-
tape('clone', function (t) {
123+
test('clone', function (t) {
124+
t.plan(4)
125+
116126
const file = new RAM()
117127

118128
file.write(0, Buffer.from('hello'), function (err) {
119-
t.error(err, 'no error')
129+
t.absent(err, 'no error')
120130
const file2 = file.clone()
121131
file.write(0, Buffer.from('world'), function (err) {
122-
t.error(err, 'no error')
132+
t.absent(err, 'no error')
123133
file2.read(0, 5, function (err, buf) {
124-
t.error(err, 'no error')
125-
t.same(buf, Buffer.from('hello'))
126-
t.end()
134+
t.absent(err, 'no error')
135+
t.alike(buf, Buffer.from('hello'))
127136
})
128137
})
129138
})

0 commit comments

Comments
 (0)