diff --git a/src/logic.js b/src/logic.js index 3c52f76..0b9eab3 100644 --- a/src/logic.js +++ b/src/logic.js @@ -1,4 +1,4 @@ -const { pathOr, hasPath } = require('ramda'); +const { pathOr, hasPath, props } = require('ramda'); const parseArgs = require('minimist'); const process = require('process'); @@ -8,6 +8,13 @@ const page_url = (page_id) => `https://www.facebook.com/${page_id}`; const page_events_url = (page_id) => page_url(page_id) + '/events/'; +const parse_output = (argv) => { + const [res = null] = props(['output', 'o'], argv).filter( + (item) => item !== undefined, + ); + return res; +}; + export const parse_args = (args) => { const argv = parseArgs(args); @@ -26,6 +33,7 @@ export const parse_args = (args) => { .map(page_id_to_page_events_url); const events = pathOr(null, ['events'], argv); + const output = parse_output(argv); return { page_ids: [ @@ -34,5 +42,6 @@ export const parse_args = (args) => { ...parse_param('pages'), ], events, + output, }; }; diff --git a/tests/logic.test.js b/tests/logic.test.js index b16af62..a008970 100644 --- a/tests/logic.test.js +++ b/tests/logic.test.js @@ -38,4 +38,19 @@ describe('test parse args', () => { const res = parse_args(['']); expect(res.events).toEqual(null); }); + + it('sets output to null if no option is passed', () => { + const res = parse_args(['']); + expect(res.output).toEqual(null); + }); + + it('passes output if it is set with --output', () => { + const res = parse_args(['--output=jacobi']); + expect(res.output).toEqual('jacobi'); + }); + + it('passes output if it is set with -o', () => { + const res = parse_args(['-o', 'jacobi']); + expect(res.output).toEqual('jacobi'); + }); });