describe('Body - Gym (身体-健身)', () => { beforeEach(() => { cy.visit('/body', { onBeforeLoad(win) { win.localStorage.setItem('sp_login_expires', String(Date.now() + 86400000)) } }) cy.get('.sub-tab').contains('健身').click() }) it('shows gym section with add button', () => { cy.contains('健身记录').should('be.visible') cy.get('.btn-accent').should('contain', '记录') }) it('opens add gym form', () => { cy.get('.btn-accent').contains('记录').click() cy.get('.edit-form').should('be.visible') cy.get('.edit-form input[type="date"]').should('exist') }) it('creates a gym record', () => { cy.get('.btn-accent').contains('记录').click() cy.get('.edit-form input').eq(1).type('跑步') cy.get('.edit-form input').eq(2).type('30分钟') cy.get('.edit-form input').eq(3).type('5公里') cy.get('.btn-accent').contains('保存').click() cy.get('.record-card').should('contain', '跑步') cy.get('.record-card').should('contain', '30分钟') }) it('deletes a gym record', () => { cy.get('.btn-accent').contains('记录').click() cy.get('.edit-form input').eq(1).type('待删除运动') cy.get('.btn-accent').contains('保存').click() cy.get('.record-card').contains('待删除运动').parent().find('.remove-btn').click() cy.get('.record-card').should('not.contain', '待删除运动') }) it('cancel button closes form', () => { cy.get('.btn-accent').contains('记录').click() cy.get('.btn-close').contains('取消').click() cy.get('.edit-form').should('not.exist') }) })