coverage 🖼 100% of core.js

🌴 🌴
This commit is contained in:
abdennour 2016-11-26 02:11:41 +03:00
commit 067281b7a3
2 changed files with 43 additions and 6 deletions

View file

@ -1,8 +1,8 @@
export const isJsons = ((array) => array.every( export const isJsons = ((array) => Array.isArray(array) && array.every(
row => (typeof row === 'object' && !(row instanceof Array)) row => (typeof row === 'object' && !(row instanceof Array))
)); ));
export const isArrays = ((array) => array.every( export const isArrays = ((array) => Array.isArray(array) && array.every(
row => Array.isArray(row) row => Array.isArray(row)
)); ));

View file

@ -1,5 +1,5 @@
import expect from 'expect'; import expect from 'expect';
import sinon from 'sinon';
import { import {
isJsons, isJsons,
isArrays, isArrays,
@ -10,7 +10,7 @@ import {
string2csv, string2csv,
toCSV, toCSV,
buildURI buildURI
} from '../lib/core'; } from '../src/core';
describe(`core::isJsons`, () => { describe(`core::isJsons`, () => {
it(`returns true if all items of array are literal objects`, () => { it(`returns true if all items of array are literal objects`, () => {
@ -195,11 +195,48 @@ describe(`core::string2csv`, () =>{
}); });
it(`returns the same string if no header given`, () => { it(`returns the same string if no header given`, () => {
expect(string2csv(fixtures)).toEqual(fixtures); expect(string2csv(fixtures)).toEqual(fixtures);
}) });
it(`prepends headers at the top of input`, () => { it(`prepends headers at the top of input`, () => {
const headers =[`X`, `Y`]; const headers =[`X`, `Y`];
expect(string2csv(fixtures, headers)).toEqual(`${headers.join(`,`)}\n${fixtures}`); expect(string2csv(fixtures, headers)).toEqual(`${headers.join(`,`)}\n${fixtures}`);
}) });
});
describe(`core::toCSV`, () =>{
let fixtures;
beforeEach(() => {
fixtures = {string:'Xy', arrays:[[],[]],jsons:[{}, {}]};
});
it(`requires one argument at least`, () => {
expect(() => toCSV()).toThrow();
});
it(`accepts data as "Array" of jsons `, () => {
expect(() => toCSV(fixtures.jsons)).toNotThrow();
});
it(`accepts data as "Array" of arrays `, () => {
expect(() => toCSV(fixtures.arrays)).toNotThrow();
});
it(`accepts data as "string" `, () => {
expect(() => toCSV(fixtures.string)).toNotThrow();
});
}); });
describe(`core::buildURI`, () =>{
let fixtures;
beforeEach(() => {
fixtures = {string:'Xy', arrays:[[],[]],jsons:[{}, {}]};
});
it(`generates URI to download data in CSV format`,() => {
const prefixCsvURI= `data:text/csv;`;
expect(buildURI(fixtures.jsons).startsWith(prefixCsvURI)).toBeTruthy();
expect(buildURI(fixtures.arrays).startsWith(prefixCsvURI)).toBeTruthy();
expect(buildURI(fixtures.string).startsWith(prefixCsvURI)).toBeTruthy();
});
});