@@ -20,6 +20,110 @@ describe("useAssessmentStatus", () => {
20
20
server . resetHandlers ( ) ;
21
21
} ) ;
22
22
23
+ it ( "Updates hasApplicationAssessmentInProgress to false when assessment is marked as not required" , async ( ) => {
24
+ server . use (
25
+ rest . get ( "/hub/archetypes" , ( req , res , ctx ) => {
26
+ return res (
27
+ ctx . json ( [
28
+ createMockArchetype ( {
29
+ id : 1 ,
30
+ name : "archetype1" ,
31
+ applications : [ ] ,
32
+ assessed : false ,
33
+ assessments : [ ] ,
34
+ } ) ,
35
+ ] )
36
+ ) ;
37
+ } ) ,
38
+ rest . get ( "/hub/assessments" , ( req , res , ctx ) => {
39
+ return res (
40
+ ctx . json ( [
41
+ createMockAssessment ( {
42
+ id : 1 ,
43
+ application : { id : 1 , name : "app1" } ,
44
+ questionnaire : { id : 1 , name : "questionnaire1" } ,
45
+ status : "started" ,
46
+ required : true ,
47
+ sections : [ ] ,
48
+ } ) ,
49
+ createMockAssessment ( {
50
+ id : 2 ,
51
+ application : { id : 1 , name : "app1" } ,
52
+ questionnaire : { id : 2 , name : "questionnaire2" } ,
53
+ status : "complete" ,
54
+ required : true ,
55
+ sections : [ ] ,
56
+ } ) ,
57
+ ] )
58
+ ) ;
59
+ } )
60
+ ) ;
61
+
62
+ const queryClient = new QueryClient ( {
63
+ defaultOptions : {
64
+ queries : {
65
+ retry : false ,
66
+ cacheTime : 1000 ,
67
+ } ,
68
+ } ,
69
+ } ) ;
70
+
71
+ const { result, rerender } = renderHook (
72
+ ( ) => useAssessmentStatus ( createMockApplication ( { id : 1 , name : "app1" } ) ) ,
73
+ { queryClient }
74
+ ) ;
75
+
76
+ await waitFor ( ( ) => {
77
+ expect ( result . current . hasApplicationAssessmentInProgress ) . toBe ( true ) ;
78
+ } ) ;
79
+
80
+ server . use (
81
+ rest . get ( "/hub/archetypes" , ( req , res , ctx ) => {
82
+ return res (
83
+ ctx . json ( [
84
+ createMockArchetype ( {
85
+ id : 1 ,
86
+ name : "archetype1" ,
87
+ applications : [ ] ,
88
+ assessed : false ,
89
+ assessments : [ ] ,
90
+ } ) ,
91
+ ] )
92
+ ) ;
93
+ } ) ,
94
+ rest . get ( "/hub/assessments" , ( req , res , ctx ) => {
95
+ return res (
96
+ ctx . json ( [
97
+ createMockAssessment ( {
98
+ id : 1 ,
99
+ application : { id : 1 , name : "app1" } ,
100
+ questionnaire : { id : 1 , name : "questionnaire1" } ,
101
+ status : "started" ,
102
+ required : false ,
103
+ sections : [ ] ,
104
+ } ) ,
105
+ createMockAssessment ( {
106
+ id : 2 ,
107
+ application : { id : 1 , name : "app1" } ,
108
+ questionnaire : { id : 2 , name : "questionnaire2" } ,
109
+ status : "complete" ,
110
+ required : false ,
111
+ sections : [ ] ,
112
+ } ) ,
113
+ ] )
114
+ ) ;
115
+ } )
116
+ ) ;
117
+
118
+ queryClient . invalidateQueries ( [ assessmentsQueryKey ] ) ;
119
+
120
+ rerender ( createMockApplication ( { id : 1 , name : "app1" } ) ) ;
121
+
122
+ await waitFor ( ( ) => {
123
+ expect ( result . current . hasApplicationAssessmentInProgress ) . toBe ( false ) ;
124
+ } ) ;
125
+ } ) ;
126
+
23
127
it ( "Updates hasApplicationAssessmentInProgress to false once associated assessments are deleted" , async ( ) => {
24
128
server . use (
25
129
rest . get ( "/hub/assessments" , ( req , res , ctx ) => {
0 commit comments