From 3a34249e0e44ad4c55bb705f1cea9662b1badff1 Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Wed, 19 Aug 2026 22:56:33 +0300 Subject: [PATCH] cover reschedule failure states --- .../website/cypress/e2e/set-scheduling.cy.ts | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/frontend/website/cypress/e2e/set-scheduling.cy.ts b/frontend/website/cypress/e2e/set-scheduling.cy.ts index d138e28..36f52e0 100644 --- a/frontend/website/cypress/e2e/set-scheduling.cy.ts +++ b/frontend/website/cypress/e2e/set-scheduling.cy.ts @@ -585,6 +585,12 @@ describe('set scheduling', () => { cy.get('input[value="middle"]').should('be.checked') cy.get('input[value="end"]').check() }) + cy.viewport(375, 667) + cy.document().then((document) => { + expect(document.documentElement.scrollWidth).to.be.at.most( + document.documentElement.clientWidth, + ) + }) cy.get('[data-reschedule-form]').submit() cy.wait('@reschedule') @@ -648,6 +654,31 @@ describe('set scheduling', () => { cy.get('[data-reschedule-toggle]').should('not.exist') }) + it('keeps the current plan visible when rescheduling fails', () => { + cy.clock(new Date(2026, 7, 15, 12).getTime(), ['Date']) + cy.intercept('GET', '**/api/schedules/73', { + statusCode: 200, + body: rescheduleSourceDetail, + }).as('schedule') + cy.intercept('PATCH', '**/api/schedules/73', { + statusCode: 500, + body: { error: 'Rescheduling is temporarily unavailable.' }, + }).as('reschedule') + + cy.visit('/schedules/73') + cy.wait('@me') + cy.wait('@schedule') + cy.get('[data-reschedule-toggle]').click() + cy.get('[data-reschedule-form]').submit() + cy.wait('@reschedule') + + cy.get('[data-reschedule-form]') + .should('be.visible') + .and('contain.text', 'Rescheduling is temporarily unavailable.') + cy.get('.schedule-range').should('contain.text', 'Aug 10, 2026 to Aug 20, 2026') + cy.get('[data-reschedule-announcement]').should('have.text', '') + }) + it('completes and reopens assignments from the schedule', () => { const completedAt = '2026-08-15T12:30:00+00:00' cy.intercept('GET', '**/api/schedules/73', {