source: frontend/node_modules/bfj/test/unit/read.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 13 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 2.7 KB
Line 
1'use strict'
2
3const assert = require('chai').assert
4const proxyquire = require('proxyquire')
5const spooks = require('spooks')
6
7const modulePath = '../../src/read'
8
9suite('read:', () => {
10 test('require does not throw', () => {
11 assert.doesNotThrow(() => {
12 require(modulePath)
13 })
14 })
15
16 test('require returns function', () => {
17 assert.isFunction(require(modulePath))
18 })
19
20 suite('require:', () => {
21 let log, results, read
22
23 setup(() => {
24 log = {}
25 results = {
26 parse: [ {} ],
27 createReadStream: [ {} ]
28 }
29 read = proxyquire(modulePath, {
30 fs: {
31 createReadStream: spooks.fn({
32 name: 'createReadStream',
33 log: log,
34 results: results.createReadStream
35 })
36 },
37 './parse': spooks.fn({
38 name: 'parse',
39 log: log,
40 results: results.parse
41 })
42 })
43 })
44
45 test('read expects two arguments', () => {
46 assert.lengthOf(read, 2)
47 })
48
49 test('read does not throw', () => {
50 assert.doesNotThrow(() => {
51 read()
52 })
53 })
54
55 test('parse was not called', () => {
56 assert.strictEqual(log.counts.parse, 0)
57 })
58
59 test('fs.createReadStream was not called', () => {
60 assert.strictEqual(log.counts.createReadStream, 0)
61 })
62
63 suite('read:', () => {
64 let path, options, result
65
66 setup(() => {
67 path = {}
68 options = { foo: 'bar', ndjson: true }
69 result = read(path, options)
70 })
71
72 test('fs.createReadStream was called once', () => {
73 assert.strictEqual(log.counts.createReadStream, 1)
74 })
75
76 test('fs.createReadStream was called correctly', () => {
77 assert.lengthOf(log.args.createReadStream[0], 2)
78 assert.strictEqual(log.args.createReadStream[0][0], path)
79 assert.lengthOf(Object.keys(log.args.createReadStream[0][0]), 0)
80 assert.strictEqual(log.args.createReadStream[0][1], options)
81 assert.lengthOf(Object.keys(log.args.createReadStream[0][1]), 2)
82 })
83
84 test('parse was called once', () => {
85 assert.strictEqual(log.counts.parse, 1)
86 })
87
88 test('parse was called correctly', () => {
89 assert.isUndefined(log.these.parse[0])
90 assert.lengthOf(log.args.parse[0], 2)
91 assert.strictEqual(log.args.parse[0][0], results.createReadStream[0])
92 assert.lengthOf(Object.keys(log.args.parse[0][0]), 0)
93 assert.notStrictEqual(log.args.parse[0][1], options)
94 assert.deepEqual(log.args.parse[0][1], { foo: 'bar', ndjson: false })
95 })
96
97 test('parse result was returned', () => {
98 assert.strictEqual(result, results.parse[0])
99 })
100 })
101 })
102})
Note: See TracBrowser for help on using the repository browser.