Skip to content

Commit 10fae98

Browse files
committed
test: refactor tests, break out options
1 parent 472d8ae commit 10fae98

30 files changed

Lines changed: 490 additions & 173 deletions

test/escape.test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const test = require('ava')
2+
3+
const { collect } = require('./helpers/helper')
4+
5+
test.cb('headers: false, numeric column names', (t) => {
6+
const verify = (err, lines) => {
7+
t.false(err, 'no err')
8+
t.snapshot(lines, 'lines')
9+
t.is(lines.length, 2, '2 rows')
10+
t.end()
11+
}
12+
13+
collect('dummy.csv', { headers: false }, verify)
14+
})

test/headers.test.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const test = require('ava')
2+
3+
const { collect } = require('./helpers/helper')
4+
5+
test.cb('custom escape character', (t) => {
6+
const verify = (err, lines) => {
7+
t.false(err, 'no err')
8+
t.snapshot(lines[0], 'first row')
9+
t.snapshot(lines[1], 'second row')
10+
t.snapshot(lines[2], 'third row')
11+
t.is(lines.length, 3, '3 rows')
12+
t.end()
13+
}
14+
15+
collect('custom_escape_character.csv', { escape: '\\' }, verify)
16+
})

test/issues.test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const test = require('ava')
2+
3+
const { collect } = require('./helpers/helper')
4+
5+
test.cb('backtick separator (#105)', (t) => {
6+
const verify = (err, lines) => {
7+
t.false(err, 'no err')
8+
t.snapshot(lines, 'lines')
9+
t.is(lines.length, 2, '2 rows')
10+
t.end()
11+
}
12+
13+
collect('backtick.csv', { separator: '`' }, verify)
14+
})

test/mapHeaders.test.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
const test = require('ava')
2+
3+
const { collect } = require('./helpers/helper')
4+
5+
test.cb('rename columns', (t) => {
6+
const mapHeaders = ({ header, index }) => {
7+
const headers = { a: 'x', b: 'y', c: 'z' }
8+
return headers[header]
9+
}
10+
const verify = (err, lines) => {
11+
t.false(err, 'no err')
12+
t.snapshot(lines[0], 'first row')
13+
t.is(lines.length, 1, '1 row')
14+
t.end()
15+
}
16+
17+
collect('dummy.csv', { mapHeaders }, verify)
18+
})
19+
20+
test.cb('skip columns a and c', (t) => {
21+
const mapHeaders = ({ header, index }) => {
22+
if (['a', 'c'].indexOf(header) > -1) {
23+
return null
24+
}
25+
return header
26+
}
27+
28+
const verify = (err, lines) => {
29+
t.false(err, 'no err')
30+
t.snapshot(lines[0], 'first row')
31+
t.is(lines.length, 1, '1 row')
32+
t.end()
33+
}
34+
35+
collect('dummy.csv', { mapHeaders }, verify)
36+
})

test/mapValues.test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const test = require('ava')
2+
3+
const { collect } = require('./helpers/helper')
4+
5+
test.cb('map values', (t) => {
6+
const headers = []
7+
const indexes = []
8+
const mapValues = ({ header, index, value }) => {
9+
headers.push(header)
10+
indexes.push(index)
11+
return parseInt(value, 10)
12+
}
13+
14+
const verify = (err, lines) => {
15+
t.false(err, 'no err')
16+
t.snapshot(lines[0], 'first row')
17+
t.is(lines.length, 1, '1 row')
18+
t.snapshot(headers, 'headers')
19+
t.snapshot(indexes, 'indexes')
20+
t.end()
21+
}
22+
23+
collect('dummy.csv', { mapValues }, verify)
24+
})

test/maxRowBytes.test.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
const test = require('ava')
2+
3+
const { collect } = require('./helpers/helper')
4+
5+
test.cb('optional row size limit', (t) => {
6+
const verify = (err, lines) => {
7+
t.is(err.message, 'Row exceeds the maximum size', 'strict row size')
8+
t.is(lines.length, 4576, '4576 rows before error')
9+
t.end()
10+
}
11+
12+
collect('max_row_size.csv', { maxRowBytes: 200 }, verify)
13+
})

test/newline.test.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const test = require('ava')
2+
3+
const { collect } = require('./helpers/helper')
4+
5+
test.cb('custom newline', (t) => {
6+
const verify = (err, lines) => {
7+
t.false(err, 'no err')
8+
t.snapshot(lines[0], 'first row')
9+
t.snapshot(lines[1], 'second row')
10+
t.snapshot(lines[2], 'third row')
11+
t.is(lines.length, 3, '3 rows')
12+
t.end()
13+
}
14+
15+
collect('custom-newlines.csv', { newline: 'X' }, verify)
16+
})

test/quote.test.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
const test = require('ava')
2+
3+
const { collect } = require('./helpers/helper')
4+
5+
test.cb('custom quote character', (t) => {
6+
const verify = (err, lines) => {
7+
t.false(err, 'no err')
8+
t.snapshot(lines[0], 'first row')
9+
t.snapshot(lines[1], 'second row')
10+
t.is(lines.length, 2, '2 rows')
11+
t.end()
12+
}
13+
14+
collect('custom_quote_character.csv', { quote: "'" }, verify)
15+
})
16+
17+
test.cb('custom quote and escape character', (t) => {
18+
const verify = (err, lines) => {
19+
t.false(err, 'no err')
20+
t.snapshot(lines[0], 'first row')
21+
t.snapshot(lines[1], 'second row')
22+
t.snapshot(lines[2], 'third row')
23+
t.is(lines.length, 3, '3 rows')
24+
t.end()
25+
}
26+
27+
collect('custom_quote_and_escape_character.csv', { quote: "'", escape: '\\' }, verify)
28+
})
29+
30+
test.cb('custom quote character with default escaped value', (t) => {
31+
const verify = (err, lines) => {
32+
t.false(err, 'no err')
33+
t.snapshot(lines[0], 'first row')
34+
t.snapshot(lines[1], 'second row')
35+
t.snapshot(lines[2], 'third row')
36+
t.is(lines.length, 3, '3 rows')
37+
t.end()
38+
}
39+
40+
collect('custom_quote_character_default_escape.csv', { quote: "'" }, verify)
41+
})

test/skipLines.test.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
const test = require('ava')
2+
3+
const { collect } = require('./helpers/helper')
4+
5+
test.cb('skip rows until', (t) => {
6+
const verify = (err, lines) => {
7+
t.false(err, 'no err')
8+
t.is(JSON.stringify(lines[0]), JSON.stringify({yes: 'ok', yup: 'ok', yeah: 'ok!'}))
9+
t.end()
10+
}
11+
12+
collect('junk_rows.csv', {skipLines: 2}, verify)
13+
})

0 commit comments

Comments
 (0)