Skip to content

Commit

Permalink
fix: The getQualification function should not crash if no qualification
Browse files Browse the repository at this point in the history
...is present on the file
  • Loading branch information
Merkur39 committed Mar 21, 2024
1 parent e7c6ea9 commit a58a378
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 24 deletions.
26 changes: 13 additions & 13 deletions docs/api/cozy-client/classes/models.document.Qualification.md
Expand Up @@ -27,7 +27,7 @@ the checkValueAttributes method.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:27](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L27)
[packages/cozy-client/src/models/document/qualification.js:28](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L28)

## Properties

Expand All @@ -37,7 +37,7 @@ the checkValueAttributes method.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:35](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L35)
[packages/cozy-client/src/models/document/qualification.js:36](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L36)

***

Expand All @@ -47,7 +47,7 @@ the checkValueAttributes method.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:41](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L41)
[packages/cozy-client/src/models/document/qualification.js:42](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L42)

***

Expand All @@ -57,7 +57,7 @@ the checkValueAttributes method.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:49](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L49)
[packages/cozy-client/src/models/document/qualification.js:50](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L50)

***

Expand All @@ -67,7 +67,7 @@ the checkValueAttributes method.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:57](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L57)
[packages/cozy-client/src/models/document/qualification.js:58](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L58)

***

Expand All @@ -77,7 +77,7 @@ the checkValueAttributes method.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:64](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L64)
[packages/cozy-client/src/models/document/qualification.js:65](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L65)

## Methods

Expand Down Expand Up @@ -108,7 +108,7 @@ Check the given qualification attributes respects the following rules:

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:84](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L84)
[packages/cozy-client/src/models/document/qualification.js:85](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L85)

***

Expand All @@ -132,7 +132,7 @@ The Qualification object.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:167](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L167)
[packages/cozy-client/src/models/document/qualification.js:168](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L168)

***

Expand All @@ -156,7 +156,7 @@ The Qualification object.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:177](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L177)
[packages/cozy-client/src/models/document/qualification.js:178](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L178)

***

Expand All @@ -180,7 +180,7 @@ The Qualification object.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:190](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L190)
[packages/cozy-client/src/models/document/qualification.js:191](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L191)

***

Expand All @@ -204,7 +204,7 @@ The Qualification object.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:203](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L203)
[packages/cozy-client/src/models/document/qualification.js:204](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L204)

***

Expand All @@ -222,7 +222,7 @@ The qualification attributes

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:215](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L215)
[packages/cozy-client/src/models/document/qualification.js:216](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L216)

***

Expand All @@ -246,4 +246,4 @@ Returns the qualification associated to a label.

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:232](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L232)
[packages/cozy-client/src/models/document/qualification.js:233](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L233)
2 changes: 1 addition & 1 deletion docs/api/cozy-client/modules/models.document.md
Expand Up @@ -61,4 +61,4 @@ Set the qualification to the document metadata

*Defined in*

[packages/cozy-client/src/models/document/qualification.js:243](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L243)
[packages/cozy-client/src/models/document/qualification.js:244](https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/models/document/qualification.js#L244)
21 changes: 12 additions & 9 deletions packages/cozy-client/src/models/document/qualification.js
@@ -1,4 +1,5 @@
import { get, set, difference } from 'lodash'
import set from 'lodash/set'
import difference from 'lodash/difference'
import * as qualificationModel from '../../assets/qualifications.json'
import logger from '../../logger'
/**
Expand Down Expand Up @@ -254,14 +255,16 @@ export const setQualification = (document, qualification) => {
* Helper to get the qualification from a document
*
* @param {object} document - The document
* @returns {Qualification} - The document qualification
*
* @returns {Qualification|null} - The document qualification
*/
export const getQualification = document => {
const docQualification = get(document, 'metadata.qualification')
const qualification = new Qualification(
docQualification.label,
docQualification.qualification
)
return qualification.toQualification()
const docQualification = document?.metadata?.qualification
if (docQualification) {
const qualification = new Qualification(
docQualification.label,
docQualification.qualification
)
return qualification.toQualification()
}
return null
}
Expand Up @@ -77,6 +77,14 @@ describe('document qualification', () => {
const fileQualification = getQualification(fileDoc)
expect(fileQualification).toEqual(qualification)
})
it("should return null if the file qualification doesn't exist", () => {
const fileDoc = {
_id: '123',
metadata: {}
}
const fileQualification = getQualification(fileDoc)
expect(fileQualification).toEqual(null)
})

it('should set the correct qualification', () => {
const fileDoc = {
Expand Down
Expand Up @@ -94,7 +94,7 @@ export namespace Qualification {
function getByLabel(label: string): Qualification;
}
export function setQualification(document: object, qualification: Qualification): object;
export function getQualification(document: object): Qualification;
export function getQualification(document: object): Qualification | null;
export type QualificationAttributes = {
/**
* - The qualification label.
Expand Down

0 comments on commit a58a378

Please sign in to comment.