Unit tests: - Volume/dilution calculation (63 tests): scaling, mode detection, ratio calculation, real recipe round-trip verification E2E tests: - Batch operations: create/tag/delete 3 recipes, adopt workflow - Projects: CRUD, pricing, profit calculation vs oil costs - Notifications: fetch, fields, mark-all-read - Account settings: profile read/update, auth rejection - Category modules: listing, tag reference - Registration: register, login, duplicate rejection - Audit log: pagination, field validation, action tracking Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
29 lines
986 B
JavaScript
29 lines
986 B
JavaScript
describe('Category Modules', () => {
|
|
it('fetches category modules from API', () => {
|
|
cy.request({ url: '/api/category-modules', failOnStatusCode: false }).then(res => {
|
|
if (res.status === 200) {
|
|
expect(res.body).to.be.an('array')
|
|
if (res.body.length > 0) {
|
|
const cat = res.body[0]
|
|
expect(cat).to.have.property('name')
|
|
expect(cat).to.have.property('tag_name')
|
|
expect(cat).to.have.property('icon')
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
it('categories reference existing tags', () => {
|
|
cy.request({ url: '/api/category-modules', failOnStatusCode: false }).then(catRes => {
|
|
if (catRes.status !== 200) return
|
|
cy.request('/api/tags').then(tagRes => {
|
|
const tags = tagRes.body
|
|
catRes.body.forEach(cat => {
|
|
// Category's tag_name should correspond to a valid tag or recipes with that tag
|
|
expect(cat.tag_name).to.be.a('string').and.not.be.empty
|
|
})
|
|
})
|
|
})
|
|
})
|
|
})
|