Skip to content

Commit 14055c6

Browse files
committed
FORMS-18632: Info or functionality is unavailable at 320px width equivalent @sunnym @vavarshn
1 parent 200a64c commit 14055c6

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed

ui.tests/test-module/specs/datepicker/datepicker.runtime.layout.cy.js

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,4 +361,133 @@ describe("Form Runtime layout of Date Picker ", () => {
361361
});
362362
});
363363

364+
describe("Reflow at 320px width (WCAG 1.4.10)", () => {
365+
366+
it("should display all date picker controls at 320px viewport width", () => {
367+
cy.viewport(320, 568);
368+
369+
const [datePicker, datePickerFieldView] = Object.entries(formContainer._fields)[0];
370+
371+
cy.get(`#${datePicker}`).find(".cmp-adaptiveform-datepicker__calendar-icon")
372+
.should("be.visible")
373+
.click();
374+
375+
cy.get('.datetimepicker.datePickerTarget')
376+
.should("be.visible")
377+
.and("have.css", "display", "flex");
378+
379+
cy.get(".dp-leftnav")
380+
.should("be.visible")
381+
.and("be.visible");
382+
383+
cy.get(".dp-rightnav")
384+
.should("be.visible")
385+
.and("be.visible");
386+
387+
cy.get(".dp-caption")
388+
.should("be.visible");
389+
});
390+
391+
it("should display all days in the first column (Sunday) at 320px", () => {
392+
cy.viewport(320, 568);
393+
394+
const [datePicker, datePickerFieldView] = Object.entries(formContainer._fields)[0];
395+
const date = '2026-02-01';
396+
397+
cy.get(`#${datePicker}`).find("input").clear().type(date);
398+
399+
cy.get(`#${datePicker}`).find(".cmp-adaptiveform-datepicker__calendar-icon")
400+
.should("be.visible")
401+
.click();
402+
403+
cy.get('.datetimepicker.datePickerTarget').within(() => {
404+
cy.get('ul.header li').first().should("be.visible").and("contain", "Sun");
405+
406+
cy.get("#li-day-2").should("be.visible");
407+
cy.get("#li-day-9").should("be.visible");
408+
cy.get("#li-day-16").should("be.visible");
409+
cy.get("#li-day-23").should("be.visible");
410+
});
411+
});
412+
413+
it("should allow navigation with previous/next buttons at 320px", () => {
414+
cy.viewport(320, 568);
415+
416+
const [datePicker, datePickerFieldView] = Object.entries(formContainer._fields)[0];
417+
const date = '2025-03-01';
418+
419+
cy.get(`#${datePicker}`).find("input").clear().type(date);
420+
421+
cy.get(`#${datePicker}`).find(".cmp-adaptiveform-datepicker__calendar-icon")
422+
.should("be.visible")
423+
.click();
424+
425+
cy.get(".dp-caption").should("contain", "March");
426+
cy.get(".dp-leftnav").should("be.visible").click();
427+
cy.get(".dp-caption").should("contain", "February");
428+
cy.get(".dp-rightnav").should("be.visible").click();
429+
cy.get(".dp-caption").should("contain", "March");
430+
});
431+
432+
it("should not cause horizontal overflow at 320px", () => {
433+
cy.viewport(320, 568);
434+
435+
const [datePicker, datePickerFieldView] = Object.entries(formContainer._fields)[0];
436+
437+
cy.get(`#${datePicker}`).find(".cmp-adaptiveform-datepicker__calendar-icon")
438+
.should("be.visible")
439+
.click();
440+
441+
cy.get('.datetimepicker.datePickerTarget').then(($picker) => {
442+
const pickerWidth = $picker.outerWidth();
443+
expect(pickerWidth).to.be.lessThan(320);
444+
});
445+
446+
cy.document().then((doc) => {
447+
expect(doc.documentElement.scrollWidth).to.equal(doc.documentElement.clientWidth);
448+
});
449+
});
450+
451+
it("should maintain date column alignment at 320px", () => {
452+
cy.viewport(320, 568);
453+
454+
const [datePicker, datePickerFieldView] = Object.entries(formContainer._fields)[0];
455+
const date = '2025-03-01';
456+
457+
cy.get(`#${datePicker}`).find("input").clear().type(date);
458+
459+
cy.get(`#${datePicker}`).find(".cmp-adaptiveform-datepicker__calendar-icon")
460+
.should("be.visible")
461+
.click();
462+
463+
cy.get('.datetimepicker.datePickerTarget .view.dp-monthview ul:not(.header)').then(($rows) => {
464+
const firstCellWidth = $rows.eq(0).find('li').eq(0).outerWidth();
465+
466+
$rows.each((rowIndex, row) => {
467+
cy.wrap(row).find('li').each((cellIndex, cell) => {
468+
const cellWidth = Cypress.$(cell).outerWidth();
469+
expect(Math.abs(cellWidth - firstCellWidth)).to.be.lessThan(2);
470+
});
471+
});
472+
});
473+
});
474+
475+
it("should allow date selection at 320px viewport", () => {
476+
cy.viewport(320, 568);
477+
478+
const [datePicker, datePickerFieldView] = Object.entries(formContainer._fields)[0];
479+
const date = '2025-03-01';
480+
481+
cy.get(`#${datePicker}`).find("input").clear().type(date);
482+
483+
cy.get(`#${datePicker}`).find(".cmp-adaptiveform-datepicker__calendar-icon")
484+
.should("be.visible")
485+
.click();
486+
487+
cy.get("#li-day-10").should("be.visible").click();
488+
489+
cy.get(`#${datePicker}`).find("input").blur().should("have.value", "Sunday, 2 March, 2025");
490+
});
491+
});
492+
364493
})

0 commit comments

Comments
 (0)