cover reschedule failure states

This commit is contained in:
Yisroel Baum 2026-08-19 22:56:33 +03:00
parent 6ab6ed801a
commit 3a34249e0e
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9

View file

@ -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', {