const {
|
|
scrollWheel,
|
|
expectDate,
|
|
setDate,
|
|
setMode,
|
|
setMaximumDate,
|
|
setMinimumDate,
|
|
init,
|
|
} = require('../utils');
|
|
|
|
const scrollDays = days => scrollWheel(1, days);
|
|
|
|
describe('Invalid dates', () => {
|
|
beforeAll(async () => {
|
|
await init();
|
|
await element(by.text('Advanced')).tap();
|
|
await setMinimumDate(undefined);
|
|
await setMaximumDate(undefined);
|
|
await setMode('date');
|
|
});
|
|
|
|
it('scrolls back to last valid date', async () => {
|
|
await setDate(new Date('2001-02-28 00:00'));
|
|
await scrollDays(1);
|
|
await expectDate('2001-02-28 00:00:00');
|
|
});
|
|
|
|
it('scrolls back after scrolling multiple dates', async () => {
|
|
await setDate(new Date('2001-02-27 00:00'));
|
|
await scrollDays(2);
|
|
await expectDate('2001-02-28 00:00:00');
|
|
});
|
|
|
|
it('not scrolling back on unusual valid dates', async () => {
|
|
await setDate(new Date('2000-02-28 00:00'));
|
|
await scrollDays(1);
|
|
await expectDate('2000-02-29 00:00:00');
|
|
});
|
|
|
|
it('not scrolling back after scrolling past invalid dates', async () => {
|
|
await setDate(new Date('2001-02-28 00:00'));
|
|
await scrollDays(4);
|
|
await expectDate('2001-02-01 00:00:00');
|
|
});
|
|
|
|
it('works on months with 30 days', async () => {
|
|
await setDate(new Date('2001-04-30 00:00'));
|
|
await scrollDays(1);
|
|
await expectDate('2001-04-30 00:00:00');
|
|
});
|
|
|
|
it('works on months with 31 days', async () => {
|
|
await setDate(new Date('2001-05-30 00:00'));
|
|
await scrollDays(1);
|
|
await expectDate('2001-05-31 00:00:00');
|
|
});
|
|
});
|