Ghost/core/test/unit/utils/read-csv_spec.js
Hannah Wolfe 47e00900cc 💄 🐷 Test consistency (#8199)
no issue

- change out should.equal for // jshint ignore:line
- ensure should is the first require in every test, and ALWAYS require
- make sinon the second require, and sandbox the last thing
- ALWAYS use sandbox, futureproofs tests against contributors who don't know it
- change require formatting
2017-03-21 09:24:11 +01:00

54 lines
1.9 KiB
JavaScript

var should = require('should'),
utils = require('../../../server/utils'),
path = require('path'),
csvPath = path.join(__dirname, '../../utils/fixtures/csv/');
describe('read csv', function () {
it('read csv: one column', function (done) {
utils.readCSV({
path: csvPath + 'single-column-with-header.csv',
columnsToExtract: [{name: 'email', lookup: /email/i}]
}).then(function (result) {
should.exist(result);
result.length.should.eql(3);
result[0].email.should.eql('email');
result[1].email.should.eql('jbloggs@example.com');
result[2].email.should.eql('test@example.com');
done();
}).catch(done);
});
it('read csv: two columns, 1 filter', function (done) {
utils.readCSV({
path: csvPath + 'two-columns-with-header.csv',
columnsToExtract: [{name: 'email', lookup: /email/i}]
}).then(function (result) {
should.exist(result);
result.length.should.eql(2);
result[0].email.should.eql('jbloggs@example.com');
result[1].email.should.eql('test@example.com');
should.not.exist(result[0].id);
done();
}).catch(done);
});
it('read csv: two columns, 2 filters', function (done) {
utils.readCSV({
path: csvPath + 'two-columns-obscure-header.csv',
columnsToExtract: [
{name: 'email', lookup: /email/i},
{name: 'id', lookup: /id/i}
]
}).then(function (result) {
should.exist(result);
result.length.should.eql(2);
result[0].email.should.eql('jbloggs@example.com');
result[0].id.should.eql('1');
result[1].email.should.eql('test@example.com');
result[1].id.should.eql('2');
done();
}).catch(done);
});
});