import datetime_doctype from '../fixtures/datetime_doctype'; const doctype_name = datetime_doctype.name; context('Control Date, Time and DateTime', () => { before(() => { cy.login(); cy.visit('/app#workspace/Website'); return cy.insert_doc('DocType', datetime_doctype, true); }); describe('Date formats', () => { let date_formats = [ { date_format: 'dd-mm-yyyy', part: 2, length: 4, separator: '-' }, { date_format: 'mm/dd/yyyy', part: 0, length: 2, separator: '/' } ]; date_formats.forEach(d => { it('test date format ' + d.date_format, () => { cy.set_value('System Settings', 'System Settings', { date_format: d.date_format }); cy.window() .its('frappe') .then(frappe => { // update sys_defaults value to avoid a reload frappe.sys_defaults.date_format = d.date_format; }); cy.new_form(doctype_name); cy.get('.form-control[data-fieldname=date]').focus(); cy.get('.datepickers-container .datepicker.active') .should('be.visible'); cy.get( '.datepickers-container .datepicker.active .datepicker--cell-day.-current-' ).click(); cy.window() .its('cur_frm') .then(cur_frm => { let formatted_value = cur_frm.get_field('date').input.value; let parts = formatted_value.split(d.separator); expect(parts[d.part].length).to.equal(d.length); }); }); }); }); describe('Time formats', () => { let time_formats = [ { time_format: 'HH:mm:ss', value: ' 11:00:12', match_value: '11:00:12' }, { time_format: 'HH:mm', value: ' 11:00:12', match_value: '11:00' } ]; time_formats.forEach(d => { it('test time format ' + d.time_format, () => { cy.set_value('System Settings', 'System Settings', { time_format: d.time_format }); cy.window() .its('frappe') .then(frappe => { frappe.sys_defaults.time_format = d.time_format; }); cy.new_form(doctype_name); cy.fill_field('time', d.value, 'Time').blur(); cy.get_field('time').should('have.value', d.match_value); }); }); }); describe('DateTime formats', () => { let datetime_formats = [ { date_format: 'dd.mm.yyyy', time_format: 'HH:mm:ss', value: ' 02.12.2019 11:00:12', doc_value: '2019-12-02 11:00:12', input_value: '02.12.2019 11:00:12' }, { date_format: 'mm-dd-yyyy', time_format: 'HH:mm', value: ' 12-02-2019 11:00:00', doc_value: '2019-12-02 11:00:00', input_value: '12-02-2019 11:00' } ]; datetime_formats.forEach(d => { it(`test datetime format ${d.date_format} ${d.time_format}`, () => { cy.set_value('System Settings', 'System Settings', { date_format: d.date_format, time_format: d.time_format }); cy.window() .its('frappe') .then(frappe => { frappe.sys_defaults.date_format = d.date_format; frappe.sys_defaults.time_format = d.time_format; }); cy.new_form(doctype_name); cy.fill_field('datetime', d.value, 'Datetime').blur(); cy.get_field('datetime').should('have.value', d.input_value); cy.window() .its('cur_frm.doc.datetime') .should('eq', d.doc_value); }); }); }); });