From cb91cfb1cabdc7fb90fb90b423f88fc2e66d051a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Sverre=20Lien=20Sell=C3=A6g?= Date: Fri, 29 May 2020 15:09:36 +0200 Subject: [PATCH] take on all options --- src/logic.js | 11 ++++++++++- tests/logic.test.js | 15 +++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) 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'); + }); });