diff --git a/frontend/rabbi_gerzi/cypress/e2e/media.cy.ts b/frontend/rabbi_gerzi/cypress/e2e/media.cy.ts index cbbcdc8..0573764 100644 --- a/frontend/rabbi_gerzi/cypress/e2e/media.cy.ts +++ b/frontend/rabbi_gerzi/cypress/e2e/media.cy.ts @@ -238,6 +238,35 @@ describe('media page sets', () => { cy.resetDb() }) + it('preserves set order when saving fails', () => { + cy.resetDb() + loginAsAdmin() + cy.visit('/media') + cy.intercept('PUT', /\/api\/sets\/order$/, { + statusCode: 500, + body: { error: 'Unexpected failure' }, + }).as('reorderSets') + + cy.contains('[data-cy="media-set-card"]', 'Daily Learning') + .within(() => { + cy.get('[data-cy="media-set-move-up"]').click() + }) + cy.wait('@reorderSets') + + cy.get('[data-cy="media-set-order-error"]') + .should('be.visible') + .and('contain.text', 'Could not save set order') + cy.get('[data-cy="media-set-order-status"]').should('not.exist') + cy.get('[data-cy="media-set-card"]') + .eq(0) + .should('contain.text', 'Baderech HaAvodah') + cy.get('[data-cy="media-set-card"]') + .eq(1) + .should('contain.text', 'Daily Learning') + + cy.resetDb() + }) + it('creates a set from the logged-in media page modal', () => { loginAsAdmin() cy.visit('/media')