describe('API Health', () => { it('GET /api/notes returns array', () => { cy.request('/api/notes').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/todos returns array', () => { cy.request('/api/todos').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/inbox returns array', () => { cy.request('/api/inbox').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/reminders returns array', () => { cy.request('/api/reminders').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/goals returns array', () => { cy.request('/api/goals').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/checklists returns array', () => { cy.request('/api/checklists').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/sleep returns array', () => { cy.request('/api/sleep').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/gym returns array', () => { cy.request('/api/gym').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/period returns array', () => { cy.request('/api/period').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/docs returns array', () => { cy.request('/api/docs').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/bugs returns array', () => { cy.request('/api/bugs').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/reviews returns array', () => { cy.request('/api/reviews').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/schedule-modules returns array', () => { cy.request('/api/schedule-modules').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/schedule-slots returns array', () => { cy.request('/api/schedule-slots').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/weekly-template returns array', () => { cy.request('/api/weekly-template').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/health-items returns array', () => { cy.request('/api/health-items?type=health').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/health-plans returns array', () => { cy.request('/api/health-plans?type=health').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/health-checks returns array', () => { cy.request('/api/health-checks?type=health').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/backups returns array', () => { cy.request('/api/backups').then(res => { expect(res.status).to.eq(200) expect(res.body).to.be.an('array') }) }) it('GET /api/sleep-buddy returns buddy data', () => { cy.request('/api/sleep-buddy').then(res => { expect(res.status).to.eq(200) expect(res.body).to.have.property('users') expect(res.body).to.have.property('notifications') }) }) it('POST /api/login rejects wrong password', () => { cy.request({ method: 'POST', url: '/api/login', body: { hash: 'wrong_hash' }, failOnStatusCode: false, }).then(res => { expect(res.status).to.eq(401) }) }) })