From 065e0e968276bc385ecec314a5577a5be44bfaf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20=C3=96brink?= Date: Mon, 12 Apr 2021 18:46:02 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20It=20now=20handles=20com?= =?UTF-8?q?ments?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.test.ts | 14 ++++++++++++++ src/index.ts | 13 +++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/index.test.ts b/src/index.test.ts index bb60cf10..e2777540 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -1045,4 +1045,18 @@ describe('parse', () => { name: 'Övriga språk', }) }) + it('handles comments', () => { + expect(parse('NO a)')).toEqual({ + code: 'NO', + category: '', + name: 'Naturorienterande ämnen', + comment: 'a)', + }) + expect(parse('MTID Arbetslagsråd 7C')).toEqual({ + code: 'MTID', + category: 'Okänd', + name: 'MTID', + comment: 'Arbetslagsråd 7C', + }) + }) }) diff --git a/src/index.ts b/src/index.ts index c0df500c..5290871c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -274,13 +274,18 @@ const parseNativeLanguage: Parser = (code) => { } const parse = (code: string): Subject => { - return ( - parseSubject(code) || + const [subjectCode, ...rest] = code.split(' ') + const result: Subject = parseSubject(subjectCode) || parseTrainingSubject(code) || parseLanguage(code) || parseAltLanguage(code) || - parseNativeLanguage(code) || { code, category: 'Okänd', name: code } - ) + parseNativeLanguage(code) || { + code: subjectCode, + category: 'Okänd', + name: subjectCode, + } + if (rest.length) result.comment = rest.join(' ').trim() + return result } export default parse