Merge pull request #5 from quintezkiller/patch-1
Wrapping each element of the the row in quotes. It fixes #4
This commit is contained in:
commit
5db376605f
3 changed files with 8 additions and 8 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "react-csv",
|
"name": "react-csv",
|
||||||
"version": "1.0.3-RC1",
|
"version": "1.0.4-RC1",
|
||||||
"description": "Build CSV files on the fly basing on Array/literal object of data ",
|
"description": "Build CSV files on the fly basing on Array/literal object of data ",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"jsnext:main": "src/index.js",
|
"jsnext:main": "src/index.js",
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ export const jsons2arrays = (jsons, headers) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const joiner = ((data,separator = ',') =>
|
export const joiner = ((data,separator = ',') =>
|
||||||
data.map((row, index) => row.join(separator)).join(`\n`)
|
data.map((row, index) => row.map((element) => "\"" + element + "\"").join(separator)).join(`\n`)
|
||||||
);
|
);
|
||||||
|
|
||||||
export const arrays2csv = ((data, headers, separator) =>
|
export const arrays2csv = ((data, headers, separator) =>
|
||||||
|
|
|
||||||
|
|
@ -146,13 +146,13 @@ describe(`core::arrays2csv`, () => {
|
||||||
it(`converts Array of arrays to string in CSV format`, () => {
|
it(`converts Array of arrays to string in CSV format`, () => {
|
||||||
const actual = arrays2csv(fixtures);
|
const actual = arrays2csv(fixtures);
|
||||||
expect(actual).toBeA('string');
|
expect(actual).toBeA('string');
|
||||||
expect(actual.split(`\n`).join(`|`)).toEqual(`a,b|c,d`);
|
expect(actual.split(`\n`).join(`|`)).toEqual(`"a","b"|"c","d"`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`renders CSV headers whenever it was given `, () => {
|
it(`renders CSV headers whenever it was given `, () => {
|
||||||
const headers = [`X`, `Y`];
|
const headers = [`X`, `Y`];
|
||||||
const firstLineOfCSV = arrays2csv(fixtures, headers).split(`\n`)[0];
|
const firstLineOfCSV = arrays2csv(fixtures, headers).split(`\n`)[0];
|
||||||
expect(firstLineOfCSV).toEqual(headers.join(`,`));
|
expect(firstLineOfCSV).toEqual(`"X","Y"`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -173,7 +173,7 @@ describe(`core::jsons2csv`, () => {
|
||||||
|
|
||||||
const actual = jsons2csv(fixtures);
|
const actual = jsons2csv(fixtures);
|
||||||
const expectedHeaders = ['X', 'Y'];
|
const expectedHeaders = ['X', 'Y'];
|
||||||
const expected = `${expectedHeaders.join(`,`)}|88,97|77,99`;
|
const expected = `"X","Y"|"88","97"|"77","99"`;
|
||||||
expect(actual).toBeA('string');
|
expect(actual).toBeA('string');
|
||||||
expect(actual.split(`\n`).join(`|`)).toEqual(expected);
|
expect(actual.split(`\n`).join(`|`)).toEqual(expected);
|
||||||
});
|
});
|
||||||
|
|
@ -181,8 +181,8 @@ describe(`core::jsons2csv`, () => {
|
||||||
let fixtures =[{X:'12', Y:'bb'}, {Y:'ee', X:'55'}]
|
let fixtures =[{X:'12', Y:'bb'}, {Y:'ee', X:'55'}]
|
||||||
const headers = ['Y', 'X', 'Z'];
|
const headers = ['Y', 'X', 'Z'];
|
||||||
const actual = jsons2csv(fixtures, headers);
|
const actual = jsons2csv(fixtures, headers);
|
||||||
expect(actual.startsWith(headers.join(`,`))).toBeTruthy();
|
expect(actual.startsWith(`"Y","X","Z"`)).toBeTruthy();
|
||||||
expect(actual.endsWith(`ee,55,`)).toBeTruthy();
|
expect(actual.endsWith(`"ee","55",""`)).toBeTruthy();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -199,7 +199,7 @@ describe(`core::string2csv`, () =>{
|
||||||
|
|
||||||
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(`X,Y\n${fixtures}`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue