UNPKG

lunisolar

Version:

专业农历库,支持公历阴历互转,支持各类黄历数据查询,如八字四柱、阴历、神煞宜忌、时辰吉凶、建除十二神、胎神占方、五行纳音等。支持自定义插件。

86 lines (75 loc) 2.84 kB
import { addMarkers, removeMarkersByTagOrName, removeMarkers } from '../../src/utils/markers' import festivals from '../../src/markers/festivals.zh' describe('test markers', () => { const formatList: string[] = [] const formatMap = new Map<string, MarkersMatcherMap>() const fnList: MarkersFnListItem[] = [] const gbMarkers: MarkersStore = { formatList, formatMap, fnList } addMarkers(gbMarkers, festivals, 'test') it('test addMarkers function', () => { expect(gbMarkers.formatList).toEqual(['MMDD', 'M,d,dR', 'M,d,dRr', 'lMn,lDn']) // console.log(gbMarkers.formatMap.keys()) expect(Array.from(gbMarkers.formatMap.keys())).toEqual(['MMDD', 'M,d,dR', 'M,d,dRr', 'lMn,lDn']) const d1004 = gbMarkers.formatMap.get('MMDD')?.get('1004') const d1004a = d1004 ? d1004[0] : undefined expect(d1004a?.tag).toEqual(['international', 'environment', 'test']) expect( d1004?.map(v => { return v.name }) ).toEqual(['世界動物日']) expect( gbMarkers.formatMap .get('MMDD') ?.get('1024') ?.map(v => { return v.name }) ).toEqual(['聯合國日', '程序員节']) }) it('test removeMarkersByName function', () => { expect( gbMarkers.formatMap .get('MMDD') ?.get('0101') ?.map(v => v.name) ).toContain('元旦') removeMarkersByTagOrName(gbMarkers, '元旦', false) expect(gbMarkers.formatMap.get('MMDD')?.get('0101')).toEqual(undefined) }) it('test remove markers', () => { expect( gbMarkers.formatMap .get('MMDD') ?.get('0303') ?.map(v => v.name) ).toEqual(['世界野生動植物日', '全國愛耳日', '國際愛耳日']) removeMarkers(gbMarkers, 'MMDD', ['0303'], ['全國愛耳日', '國際愛耳日']) expect( gbMarkers.formatMap .get('MMDD') ?.get('0303') ?.map(v => v.name) ).toEqual(['世界野生動植物日']) removeMarkers(gbMarkers, 'MMDD', '0303') expect(gbMarkers.formatMap.get('MMDD')?.get('0303')).toEqual(undefined) removeMarkers(gbMarkers, true, 't') expect(gbMarkers.fnList.length).toBe(0) }) it('test removerMarker only by format', () => { expect( gbMarkers.formatMap .get('M,d,dRr') ?.get('1,0,1') ?.map(v => v.name) ).toEqual(['國際麻風節']) removeMarkers(gbMarkers, 'M,d,dRr') expect(gbMarkers.formatMap.get('M,d,dRr')).toEqual(undefined) }) it('test removeMarkersByTag function', () => { removeMarkersByTagOrName(gbMarkers, 'international', true) expect(gbMarkers.formatMap.get('MMDD')?.get('0202')).toEqual(undefined) expect(gbMarkers.formatMap.get('MMDD')?.get('0204')).toEqual(undefined) expect(gbMarkers.formatMap.get('MMDD')?.get('1024')?.length ?? 0).toBe(0) }) })