feat: 🎸 Misc codes (Lunch, Prandium, MTID)
This commit is contained in:
parent
bf299ea1f0
commit
59e350b6ab
|
@ -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',
|
||||
})
|
||||
})
|
||||
|
|
25
src/index.ts
25
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,
|
||||
|
|
Loading…
Reference in New Issue