@@ -32,6 +32,15 @@ vi.mock('@/hooks/use-findings-api', () => ({
3232 } ,
3333 ] ,
3434 FINDING_CATEGORY_LABELS : { general : 'General' } ,
35+ FINDING_TYPE_FRAMEWORK_OPTIONS : [
36+ { value : 'soc2' , label : 'SOC 2' } ,
37+ { value : 'iso27001' , label : 'ISO 27001' } ,
38+ { value : 'pci_dss' , label : 'PCI DSS' } ,
39+ { value : 'hipaa' , label : 'HIPAA' } ,
40+ { value : 'gdpr' , label : 'GDPR' } ,
41+ { value : 'iso9001' , label : 'ISO 9001' } ,
42+ { value : 'iso42001' , label : 'ISO 42001' } ,
43+ ] ,
3544 FINDING_TYPE_LABELS : { soc2 : 'SOC 2' , iso27001 : 'ISO 27001' } ,
3645 useFindingActions : ( ) => ( {
3746 createFinding : vi . fn ( ) ,
@@ -99,7 +108,14 @@ vi.mock('@trycompai/design-system', () => ({
99108 Select : ( { children } : any ) => < div > { children } </ div > ,
100109 SelectContent : ( { children } : any ) => < div > { children } </ div > ,
101110 SelectGroup : ( { children } : any ) => < div > { children } </ div > ,
102- SelectItem : ( { children } : any ) => < div > { children } </ div > ,
111+ SelectItem : ( { children, value, disabled } : any ) => (
112+ < div
113+ data-testid = { `select-item-${ value } ` }
114+ data-disabled = { disabled ? 'true' : 'false' }
115+ >
116+ { children }
117+ </ div >
118+ ) ,
103119 SelectLabel : ( { children } : any ) => < div > { children } </ div > ,
104120 SelectTrigger : ( { children } : any ) => < button > { children } </ button > ,
105121 Sheet : ( { children, open } : any ) => ( open ? < div data-testid = "sheet" > { children } </ div > : null ) ,
@@ -189,4 +205,32 @@ describe('CreateFindingSheet permission gating', () => {
189205
190206 expect ( screen . queryByTestId ( 'sheet' ) ) . not . toBeInTheDocument ( ) ;
191207 } ) ;
208+
209+ it ( 'shows all required frameworks in finding type dropdown options' , ( ) => {
210+ setMockPermissions ( ADMIN_PERMISSIONS ) ;
211+
212+ render ( < CreateFindingSheet { ...defaultProps } /> ) ;
213+
214+ expect ( screen . getByText ( 'SOC 2' ) ) . toBeInTheDocument ( ) ;
215+ expect ( screen . getByText ( 'ISO 27001' ) ) . toBeInTheDocument ( ) ;
216+ expect ( screen . getByText ( 'PCI DSS' ) ) . toBeInTheDocument ( ) ;
217+ expect ( screen . getByText ( 'HIPAA' ) ) . toBeInTheDocument ( ) ;
218+ expect ( screen . getByText ( 'GDPR' ) ) . toBeInTheDocument ( ) ;
219+ expect ( screen . getByText ( 'ISO 9001' ) ) . toBeInTheDocument ( ) ;
220+ expect ( screen . getByText ( 'ISO 42001' ) ) . toBeInTheDocument ( ) ;
221+ } ) ;
222+
223+ it ( 'only enables framework options currently supported by FindingType enum' , ( ) => {
224+ setMockPermissions ( ADMIN_PERMISSIONS ) ;
225+
226+ render ( < CreateFindingSheet { ...defaultProps } /> ) ;
227+
228+ expect ( screen . getByTestId ( 'select-item-soc2' ) ) . toHaveAttribute ( 'data-disabled' , 'false' ) ;
229+ expect ( screen . getByTestId ( 'select-item-iso27001' ) ) . toHaveAttribute ( 'data-disabled' , 'false' ) ;
230+ expect ( screen . getByTestId ( 'select-item-pci_dss' ) ) . toHaveAttribute ( 'data-disabled' , 'true' ) ;
231+ expect ( screen . getByTestId ( 'select-item-hipaa' ) ) . toHaveAttribute ( 'data-disabled' , 'true' ) ;
232+ expect ( screen . getByTestId ( 'select-item-gdpr' ) ) . toHaveAttribute ( 'data-disabled' , 'true' ) ;
233+ expect ( screen . getByTestId ( 'select-item-iso9001' ) ) . toHaveAttribute ( 'data-disabled' , 'true' ) ;
234+ expect ( screen . getByTestId ( 'select-item-iso42001' ) ) . toHaveAttribute ( 'data-disabled' , 'true' ) ;
235+ } ) ;
192236} ) ;
0 commit comments