Ghost/ghost/members-csv/test/unparse.test.js
Fabien "egg" O'Carroll b1cc2a8ea8 Fixed CSV unparsing for subscribed flag
no-issue

We have a special mapping for subscribed_to_emails -> subscribed in the
parse method, but were not mapping it in the unparse method, which meant
we were losing information during CSV imports.
2022-01-11 16:26:11 +02:00

35 lines
1.1 KiB
JavaScript

const should = require('should');
const unparse = require('../lib/unparse');
describe('unparse', function () {
it('serializes json to CSV and adds standard members fields', async function () {
const json = [{
email: 'email@example.com',
name: 'Sam Memberino',
note: 'Early supporter'
}];
const result = unparse(json);
should.exist(result);
const expected = `id,email,name,note,subscribed_to_emails,complimentary_plan,stripe_customer_id,created_at,deleted_at,labels,products\r\n,email@example.com,Sam Memberino,Early supporter,,,,,,,`;
should.equal(result, expected);
});
it('maps the subscribed property to subscribed_to_emails', function () {
const json = [{
email: 'do-not-email-me@email.com',
subscribed: false
}];
const columns = Object.keys(json[0]);
const result = unparse(json, columns);
const expected = `email,subscribed_to_emails\r\ndo-not-email-me@email.com,false`;
should.equal(result, expected);
});
});