From 59e350b6ab6d1164d64b84428226a0c6e078c622 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20=C3=96brink?= Date: Tue, 13 Apr 2021 15:22:28 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20Misc=20codes=20(Lunch,?= =?UTF-8?q?=20Prandium,=20MTID)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.test.ts | 21 +++++++++++++++++++-- src/index.ts | 25 +++++++++++++++++++++---- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/src/index.test.ts b/src/index.test.ts index e2777540..0ffcc4a7 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -1,6 +1,23 @@ import parse from './' describe('parse', () => { + it('Diverse', () => { + expect(parse('Lunch')).toEqual({ + code: 'Lunch', + category: 'Diverse', + name: 'Lunch', + }) + expect(parse('Prandium')).toEqual({ + code: 'Prandium', + category: 'Diverse', + name: 'Lunch', + }) + expect(parse('MTID')).toEqual({ + code: 'MTID', + category: 'Diverse', + name: 'Mentorstid', + }) + }) it('Ämnesområden', () => { expect(parse('BL')).toEqual({ code: 'BL', category: '', name: 'Bild' }) expect(parse('EN')).toEqual({ code: 'EN', category: '', name: 'Engelska' }) @@ -1054,8 +1071,8 @@ describe('parse', () => { }) expect(parse('MTID Arbetslagsråd 7C')).toEqual({ code: 'MTID', - category: 'Okänd', - name: 'MTID', + category: 'Diverse', + name: 'Mentorstid', comment: 'Arbetslagsråd 7C', }) }) diff --git a/src/index.ts b/src/index.ts index 5290871c..93fe365f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -217,6 +217,12 @@ const languages: Repo = { SPK: 'Övriga språk', } +const misc: Repo = { + Lunch: 'Lunch', + Prandium: 'Lunch', + MTID: 'Mentorstid', +} + type Parser = (code: string) => Subject | null const parseSubject: Parser = (code) => { if (!subjects[code]) return null @@ -273,13 +279,24 @@ const parseNativeLanguage: Parser = (code) => { } } +const parseMisc: Parser = (code) => { + if (!misc[code]) return null + + return { + code, + category: 'Diverse', + name: misc[code] as string, + } +} + const parse = (code: string): Subject => { const [subjectCode, ...rest] = code.split(' ') const result: Subject = parseSubject(subjectCode) || - parseTrainingSubject(code) || - parseLanguage(code) || - parseAltLanguage(code) || - parseNativeLanguage(code) || { + parseTrainingSubject(subjectCode) || + parseLanguage(subjectCode) || + parseAltLanguage(subjectCode) || + parseNativeLanguage(subjectCode) || + parseMisc(subjectCode) || { code: subjectCode, category: 'Okänd', name: subjectCode,