better error handling, error responses and tests

This commit is contained in:
Eero Antikainen
2024-10-04 14:00:46 +03:00
committed by Sampo
parent c981c65611
commit 56fecda6ce
4 changed files with 13 additions and 3 deletions
+1 -1
View File
@@ -60,6 +60,6 @@ describe('Creating new species works', () => {
const res = await send('species', 'PUT', {
species: { ...newSpeciesWithoutRequiredFields, comment: 'species test' },
})
expect(res.status).toEqual(400)
expect(res.status).toEqual(403)
})
})
+1 -1
View File
@@ -27,7 +27,7 @@ router.put(
const { comment, references, ...editedSpecies } = req.body.species
const validationErrors = validateEntireSpecies(editedSpecies)
if (validationErrors.length > 0) {
return res.status(400).send()
return res.status(403).send(validationErrors)
}
const species_id = await writeSpecies(editedSpecies, comment, references, req.user!.initials)
return res.status(200).send({ species_id })
+1 -1
View File
@@ -3,7 +3,7 @@ describe("Species validators work", () => {
cy.login('testSu')
})
it.skip("Creating a species with missing required fields does not work", () => {
it("Creating a species with missing required fields does not work", () => {
cy.visit('/species/new')
cy.contains("This field is required")
cy.get('[id=write-button]').click()
@@ -49,8 +49,18 @@ export const SpeciesDetails = () => {
}
const onWrite = async (editData: EditDataType<SpeciesDetailsType>) => {
try {
const { species_id } = await editSpeciesRequest(editData).unwrap()
setTimeout(() => navigate(`/species/${species_id}`), 15)
} catch (e: any) {
console.log(e)
let message = 'Could not save item. Missing: '
Object.keys(e.data).forEach(key => {
message += `${e.data[key].name}. `
})
console.log(message)
notify(message, 'error')
}
}
const tabs: TabType[] = [