diff --git a/src/index.test.ts b/src/index.test.ts index bb60cf1..e277754 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 c0df500..5290871 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