/
chunkFiles.spec.js
37 lines (30 loc) · 1.27 KB
/
chunkFiles.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import normalize from 'normalize-path'
import path from 'path'
import chunkFiles from '../lib/chunkFiles'
describe('chunkFiles', () => {
const files = ['example.js', 'foo.js', 'bar.js', 'foo/bar.js']
const baseDir = normalize('/opt/git/example.git')
it('should default to sane value', () => {
const chunkedFiles = chunkFiles({ baseDir, files: ['foo.js'], relative: true })
expect(chunkedFiles).toEqual([['foo.js']])
})
it('should not chunk short argument string', () => {
const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 1000 })
expect(chunkedFiles).toEqual([files])
})
it('should chunk too long argument string', () => {
const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 20 })
expect(chunkedFiles).toEqual(files.map((file) => [file]))
})
it('should take into account relative setting', () => {
const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 20, relative: true })
expect(chunkedFiles).toEqual([
[files[0], files[1]],
[files[2], files[3]],
])
})
it('should resolve paths when relative: false', () => {
const chunkedFiles = chunkFiles({ baseDir, files, relative: false })
expect(chunkedFiles).toEqual([files.map((file) => normalize(path.resolve(baseDir, file)))])
})
})