UNPKG

rc-day-picker

Version:
254 lines (237 loc) 7.63 kB
/* eslint-disable */ import { expect } from 'chai'; import * as Utils from '../lib/Utils.js'; describe('UtilsTest', () => { describe('formatMonthTitle生成对应的月份文案', () => { it('文案对应', () => { const date = new Date(2016, 5, 2); const ret = Utils.formatMonthTitle(date); expect(ret).to.equal('2016年 六月'); }); it('一个月的两天生成的title应该一致', () => { const date = new Date(2016, 5, 2); const date2 = new Date(2016, 5, 1); const ret = Utils.formatMonthTitle(date); expect(ret).to.equal(Utils.formatMonthTitle(date2)); }); }); describe('formatWeekday生成日期标题', () => { it('生成日-六的标题文案', () => { let ret = []; for (let i = 0; i < 7; i++) { ret.push(Utils.formatWeekday(i)); } expect(ret.join('')).to.equal('日一二三四五六'); }) }); describe('getMonths', () => { it('生成1-12月文案', () => { let ret = []; let months = Utils.getMonths(); for (let i = 0; i < months.length; i++) { ret.push(months[i]); } expect(ret.join('')).to.equal('一月二月三月四月五月六月七月八月九月十月十一月十二月'); }) }); describe('clone复制一个Date对象', () => { it('clone复制一个Date对象', () => { let date = new Date(); let ret = Utils.clone(date); expect(ret.toGMTString()).to.equal(date.toGMTString()); }); }); describe('addMonths', () => { it('日期+2个月', () => { const date = new Date(2016, 1); const ret = Utils.addMonths(date, 2); expect(ret.getMonth()).to.equal(date.getMonth() + 2); }); it('1月日期减一个月,到上一年12月', () => { const date = new Date(2016, 0); const ret = Utils.addMonths(date, -1); expect(ret.getMonth()).to.equal(11); }); }); describe('isSameDay', () => { it('判断两个不同时间点是同一天', () => { const date1 = new Date(2016, 1, 1, 11, 5); const date2 = new Date(2016, 1, 1, 1, 5); const ret = Utils.isSameDay(date1, date2); expect(ret).to.be.true; }); it('两个不同日期的时间点不是同一天', () => { const date1 = new Date(2016, 1, 1, 11, 5); const date2 = new Date(2016, 1, 2, 1, 5); const ret = Utils.isSameDay(date1, date2); expect(ret).to.be.false; }); it('参数缺失则返回false', () => { const date1 = new Date(2016, 1, 1, 11, 5); const ret = Utils.isSameDay(date1, null); expect(ret).to.be.false; }); it('参数缺失则返回false', () => { const date1 = new Date(2016, 1, 1, 11, 5); const ret = Utils.isSameDay(null, date1); expect(ret).to.be.false; }); }); describe('isDayInRange(判断一天是否在一个区间内,闭区间)', () => { it('检查某一天是否在两天之间', () => { const day = new Date(2016, 7, 15); const from = new Date(2016, 7, 14); const to = new Date(2016, 7, 16); const isDayInRange = Utils.isDayInRange(day, { from, to }); expect(isDayInRange).to.be.true; }); it('检查某一天是否在两天之间(区间边界上)', () => { const day = new Date(2016, 7, 14); const from = new Date(2016, 7, 14); const to = new Date(2016, 7, 16); const isDayInRange = Utils.isDayInRange(day, { from, to }); expect(isDayInRange).to.be.true; }); it('检查某一天是否在一个范围之外', () => { const day = new Date(2016, 7, 3); const from = new Date(2016, 7, 14); const to = new Date(2016, 7, 16); const isDayInRange = Utils.isDayInRange(day, { from, to }); expect(isDayInRange).to.be.false; }); }); describe('isDayBetween检查某一天是否在两天之间(开区间)', () => { it('检查某一天在两天之间,返回true', () => { const day = new Date(2016, 7, 15); const from = new Date(2016, 7, 14); const to = new Date(2016, 7, 16); const isDayInRange = Utils.isDayBetween(day, from, to); expect(isDayInRange).to.be.true; }); it('检查某一天在两天之间(参数乱序),返回true', () => { const day = new Date(2016, 7, 15); const from = new Date(2016, 7, 14); const to = new Date(2016, 7, 16); const isDayInRange = Utils.isDayBetween(day, to, from); expect(isDayInRange).to.be.true; }); it('某一天在一个范围的边界上,返回false', () => { const day = new Date(2016, 7, 14); const from = new Date(2016, 7, 14); const to = new Date(2016, 7, 16); const isDayInRange = Utils.isDayBetween(day, from, to); expect(isDayInRange).to.be.false; }); it('某一天不在某个范围内,返回false', () => { const day = new Date(2016, 7, 3); const from = new Date(2016, 7, 14); const to = new Date(2016, 7, 16); const isDayInRange = Utils.isDayBetween(day, from, to); expect(isDayInRange).to.be.false; }); }); describe('getFirstDayOfMonth获取某个月第一天', () => { it('获取某个月第一天', () => { const month = new Date(); const ret = Utils.getFirstDayOfMonth(month); expect(ret.getDate()).to.equal(1); }); }); describe('getDayNumOfMonth获取某个月的总天数', () => { it('获取一个月的天数', () => { const day = new Date(); const ret = Utils.getDayNumOfMonth(day); day.setDate(parseInt(ret) + 1) expect(day.getDate()).to.equal(1); }); }); describe('getWeekArray按星期分割每个月的天数', () => { it('按星期分割本月', () => { const day = new Date(); const ret = Utils.getWeekArray(day); let index = -1; ret.forEach((v, k) => { v.forEach((v2, k2) => { if (v2.getDate() == day.getDate()) { index = k2; } }); }) expect(index).to.equal(day.getDay()); }); }); describe('getModifiersForDay自定义修饰器判断', () => { it('自定义修饰器,返回selected修饰器', () => { let day = new Date(2016, 6, 20); let modifiers = { selected: (day) => { let day1 = new Date(2016, 6, 1); let day2 = new Date(2016, 6, 30); if (day > day1 && day < day2 ) { return true }else{ return false } } } let ret = Utils.getModifiersForDay(day, modifiers); let name = ret.join(''); let name_source = Object.keys(modifiers); expect(name).to.equal(name_source.join('')); }); it('自定义修饰器,返回disabled修饰器', () => { let day = new Date(2016, 6, 20); let modifiers = { selected: (day) => { let day1 = new Date(2016, 6, 1); let day2 = new Date(2016, 6, 30); if (day < day1 && day < day2 ) { return true }else{ return false } }, disabled: (day) => { let day1 = new Date(2016, 6, 1); let day2 = new Date(2016, 6, 30); if (day > day1 && day < day2 ) { return true }else{ return false } } } let ret = Utils.getModifiersForDay(day, modifiers); let name = ret.join(''); expect(name).to.equal('disabled'); }); it('自定义修饰器,返回所有的修饰器', () => { let day = new Date(2016, 6, 20); let modifiers = { selected: (day) => { let day1 = new Date(2016, 6, 1); let day2 = new Date(2016, 6, 30); if (day > day1 && day < day2 ) { return true }else{ return false } }, disabled: (day) => { let day1 = new Date(2016, 6, 1); let day2 = new Date(2016, 6, 30); if (day > day1 && day < day2 ) { return true }else{ return false } } } let ret = Utils.getModifiersForDay(day, modifiers); let name = ret.join(''); let name_source = Object.keys(modifiers).join(''); expect(name).to.equal(name_source); }); }); }); /* eslint-disable */