|
@@ -35,7 +35,7 @@ describe('DatePicker', () => {
|
|
|
cy.get('[data-cy=1] .semi-input').should('have.value', '2021-12-15 10:37:13');
|
|
|
});
|
|
|
|
|
|
- it('dateTime needConfirm select+cancel', () => {
|
|
|
+ it('dateTime needConfirm select + cancel', () => {
|
|
|
cy.visit('http://localhost:6006/iframe.html?id=datepicker--fix-need-confirm&args=&viewMode=story');
|
|
|
cy.get('[data-cy=1] .semi-input-wrapper').click();
|
|
|
cy.get('.semi-datepicker-day').contains('15')
|
|
@@ -302,4 +302,274 @@ describe('DatePicker', () => {
|
|
|
cy.get('[data-cy=dateRange] .semi-datepicker-range-input-wrapper-start .semi-input').should('have.value', '2022-07-10');
|
|
|
cy.get('[data-cy=dateRange] .semi-datepicker-range-input-wrapper-end .semi-input').should('have.value', '2022-10-11');
|
|
|
});
|
|
|
+
|
|
|
+ // 输入完整日期,面板需要同步变化
|
|
|
+ it('input a valid date + change panel selected date', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().type('2021-03-15');
|
|
|
+ cy.get('[x-type=date] .semi-datepicker-navigation-month').contains("2021年 3月");
|
|
|
+ cy.get('[x-type=date] .semi-datepicker-day-selected').contains("15");
|
|
|
+ });
|
|
|
+
|
|
|
+ // 输入结束日期,面板需要同步变化
|
|
|
+ it('input start + change panel selected date', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).type('2021-03-15');
|
|
|
+ cy.get('[x-type=dateRange] .semi-datepicker-navigation-month').contains("2021年 3月");
|
|
|
+ cy.get('[x-type=dateRange] .semi-datepicker-day-selected-end').contains("15");
|
|
|
+ });
|
|
|
+
|
|
|
+ // 输入开始和结束日期后,通过滚轮修改年月,面板和输入框需要同时发生变化
|
|
|
+ // 暂时去掉了这个需求
|
|
|
+ it.skip('input start + end then change year or month from scroll list', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format&args=&viewMode=story');
|
|
|
+ // input date
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().type('2021-03-15');
|
|
|
+ cy.get('[x-type=dateRange] .semi-datepicker-navigation-month').first().contains("2021年 3月");
|
|
|
+ cy.get('[x-type=dateRange] .semi-datepicker-day-selected-start').contains("15");
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).type('2021-05-15');
|
|
|
+ cy.get('[x-type=dateRange] .semi-datepicker-navigation-month').last().contains("2021年 5月");
|
|
|
+ cy.get('[x-type=dateRange] .semi-datepicker-day-selected-end').contains("15");
|
|
|
+ // click right scroll list
|
|
|
+ cy.get('[x-type=dateRange] .semi-datepicker-navigation-month').last().click();
|
|
|
+ cy.get('.semi-scrolllist-list-outer li').contains('2022').click();
|
|
|
+ cy.get('.semi-datepicker-yam .semi-datepicker-yearmonth-header .semi-button').click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').last().should('have.value', '2022-05-15');
|
|
|
+ cy.get('[x-type=dateRange] .semi-datepicker-navigation-month').last().contains("2022年 5月");
|
|
|
+ // click left scroll list
|
|
|
+ cy.get('[x-type=dateRange] .semi-datepicker-navigation-month').first().click();
|
|
|
+ cy.get('.semi-scrolllist-list-outer li').contains('2022').click();
|
|
|
+ cy.get('.semi-datepicker-yam .semi-datepicker-yearmonth-header .semi-button').click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().should('have.value', '2022-03-15');
|
|
|
+ cy.get('[x-type=dateRange] .semi-datepicker-navigation-month').first().contains("2022年 3月");
|
|
|
+ });
|
|
|
+
|
|
|
+ // 输入开始和结束日期后,输入一个不合法的日期,输入框恢复到上次合法日期
|
|
|
+ it('input invalid in date type + blur', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().type('2021-03-15');
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().type('123');
|
|
|
+ // 失焦
|
|
|
+ cy.get('[data-cy=container').click({ force: true });
|
|
|
+ // 恢复到上一次选中时间
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().should('have.value', '2021-03-15');
|
|
|
+ });
|
|
|
+
|
|
|
+ // 输入开始和结束日期后,输入一个不合法的日期,输入框恢复到上次合法日期
|
|
|
+ it('input invalid in dateRange + blur', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format&args=&viewMode=story');
|
|
|
+ // input date
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().type('2021-03-15');
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).type('2021-05-15');
|
|
|
+ // 输入不合法日期
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().type('abc');
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).type('abc');
|
|
|
+ cy.get('[data-cy=container').click({ force: true });
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().should('have.value', '2021-03-15');
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).should('have.value', '2021-05-15');
|
|
|
+ });
|
|
|
+
|
|
|
+ // 输入开始和结束日期后,输入一个不合法的日期,输入框恢复到上次合法日期
|
|
|
+ it('input invalid in dateTime + blur', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format&args=&viewMode=story');
|
|
|
+ // input date
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().type('2021-03-15 00:00:00');
|
|
|
+ // 输入不合法日期
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().type('abc');
|
|
|
+ cy.get('[data-cy=container').click({ force: true });
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().should('have.value', '2021-03-15 00:00:00');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input only invalid in date type + blur', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().type('abc');
|
|
|
+ cy.get('[data-cy=container').click({ force: true });
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().should('have.value', '');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input only invalid in dateRange + blur', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().type('abc');
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).type('123');
|
|
|
+ cy.get('[data-cy=container').click({ force: true });
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().should('have.value', '');
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).should('have.value', '');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input only invalid in dateTime + blur', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().type('123');
|
|
|
+ cy.get('[data-cy=container').click({ force: true });
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().should('have.value', '');
|
|
|
+ });
|
|
|
+
|
|
|
+ // 输入禁用日期,面板不需要同步变化
|
|
|
+ it('input a disabled date + change panel selected date', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format-disabled&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().type('2021-03-15');
|
|
|
+ cy.get('[x-type=date] .semi-datepicker-day-selected').should('not.exist');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('auto fill time + dateTime', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--auto-fill-time&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('[x-type=dateTime] .semi-input').first().type('2021-03-15');
|
|
|
+ cy.get('[x-type=dateTime] .semi-input').eq(1).should('have.value', '14:00');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('auto fill time invalid + dateTime', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--auto-fill-time&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('[x-type=dateTime] .semi-input').first().type('2021-03-');
|
|
|
+ cy.get('[x-type=dateTime] .semi-input').eq(1).should('have.value', '');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('auto fill time + dateTimeRange', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--auto-fill-time&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').first().click();
|
|
|
+ cy.get('[x-type=dateTimeRange] .semi-input').first().type('2021-01-01');
|
|
|
+ cy.get('[x-type=dateTimeRange] .semi-input').eq(1).should('have.value', '00:01');
|
|
|
+ cy.get('[x-type=dateTimeRange] .semi-input').eq(2).type('2021-03-01');
|
|
|
+ cy.get('[x-type=dateTimeRange] .semi-input').eq(3).should('have.value', '23:59');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input date + needConfirm + cancel', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format-confirm&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().type('2021-03-15 14:00');
|
|
|
+ cy.get('.semi-datepicker-footer .semi-button').first().click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().should('have.value', '');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input date + needConfirm + confirm', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format-confirm&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().type('2021-03-15 14:00');
|
|
|
+ cy.get('.semi-datepicker-footer .semi-button').eq(1).click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().should('have.value', '2021-03-15 14:00');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input date range + needConfirm + cancel', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format-confirm&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').first().click().type('2021-03-15 14:00');
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(1).click().type('2021-03-20 23:59');
|
|
|
+ cy.get('.semi-datepicker-footer .semi-button').eq(0).click();
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(0).should('have.value', '');
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(1).should('have.value', '');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input date range + needConfirm + confirm', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format-confirm&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').first().click().type('2021-03-15 14:00');
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(1).click().type('2021-03-20 23:59');
|
|
|
+ cy.get('.semi-datepicker-footer .semi-button').eq(1).click();
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(0).should('have.value', '2021-03-15 14:00');
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(1).should('have.value', '2021-03-20 23:59');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input date + needConfirm + cancel', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format-confirm&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=inset-switch]').click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('[x-type=dateTime] .semi-input').eq(0).type('2021-03-15');
|
|
|
+ cy.get('.semi-datepicker-footer .semi-button').eq(0).click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().should('have.value', '');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input date + needConfirm + confirm', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format-confirm&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=inset-switch]').click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('[x-type=dateTime] .semi-input').eq(0).type('2021-03-15');
|
|
|
+ cy.get('.semi-datepicker-footer .semi-button').eq(1).click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().should('have.value', '2021-03-15 14:00');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input date range + needConfirm + cancel', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format-confirm&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=inset-switch]').click();
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').first().click();
|
|
|
+ cy.get('[x-type=dateTimeRange] .semi-input').eq(0).type('2021-03-15');
|
|
|
+ cy.get('[x-type=dateTimeRange] .semi-input').eq(2).type('2021-03-20');
|
|
|
+ cy.get('.semi-datepicker-footer .semi-button').eq(0).click();
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(0).should('have.value', '');
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(1).should('have.value', '');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('input date range + needConfirm + confirm', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--input-format-confirm&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=inset-switch]').click();
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').first().click();
|
|
|
+ cy.get('[x-type=dateTimeRange] .semi-input').eq(0).type('2021-03-15');
|
|
|
+ cy.get('[x-type=dateTimeRange] .semi-input').eq(2).type('2021-03-20');
|
|
|
+ cy.get('.semi-datepicker-footer .semi-button').eq(1).click();
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(0).should('have.value', '2021-03-15 00:01');
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(1).should('have.value', '2021-03-20 23:59');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('cashedSelectedValue return to last selected when needConfirm & input invalid', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--need-confirm-delete&args=&viewMode=story');
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').eq(0).clear().type('2021-0');
|
|
|
+ cy.get('.semi-datepicker-footer .semi-button').eq(0).click();
|
|
|
+ cy.get('[data-cy=dateTimeRange] .semi-input').first().click();
|
|
|
+ cy.get('.semi-popover .semi-datepicker-day-selected-start').contains('8');
|
|
|
+ cy.get('.semi-popover .semi-datepicker-day-selected-end').contains('9');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('cashedSelectedValue after selected date', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--cashed-selected-value&viewMode=story');
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().click();
|
|
|
+ cy.get('.semi-datepicker-day').contains("5").click();
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().click();
|
|
|
+ cy.get('.semi-popover .semi-datepicker-day-selected').contains('5');
|
|
|
+
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('.semi-datepicker-day').contains("5").click();
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('.semi-popover .semi-datepicker-day-selected').contains('5');
|
|
|
+
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(0).click();
|
|
|
+ cy.get('.semi-datepicker-day').contains("5").click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(1).click();
|
|
|
+ cy.get('.semi-datepicker-day').contains("20").click();
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').eq(0).click();
|
|
|
+ cy.get('.semi-popover .semi-datepicker-day-selected-start').contains('5');
|
|
|
+ cy.get('.semi-popover .semi-datepicker-day-selected-end').contains('20');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('cashedSelectedValue after click outside', () => {
|
|
|
+ cy.visit('http://localhost:6006/iframe.html?id=datepicker--cashed-selected-value&viewMode=story');
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=date]').click({ force: true });
|
|
|
+ cy.get('[data-cy=date] .semi-input').first().click();
|
|
|
+ cy.get('.semi-popover .semi-datepicker-day-selected').contains('8');
|
|
|
+
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateTime]').click({ force: true });
|
|
|
+ cy.get('[data-cy=dateTime] .semi-input').first().click();
|
|
|
+ cy.get('.semi-popover .semi-datepicker-day-selected').contains('8');
|
|
|
+
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().click();
|
|
|
+ cy.get('[data-cy=dateRange]').click({ force: true });
|
|
|
+ cy.get('[data-cy=dateRange] .semi-input').first().click();
|
|
|
+ cy.get('.semi-popover .semi-datepicker-day-selected-start').contains('8');
|
|
|
+ cy.get('.semi-popover .semi-datepicker-day-selected-end').contains('9');
|
|
|
+ });
|
|
|
});
|