@@ -1860,3 +1860,83 @@ test("determineSecurityScanPaths - handles workspace with hasWorkspaceSecurityCh
18601860
18611861 expect ( result ) . toEqual ( [ ] ) ;
18621862} ) ;
1863+
1864+ test ( "runSecurityCheck - handles error and calls spinner.fail" , async ( ) => {
1865+ const { runSecurityCheck } = require ( "../../../src/cli/index" ) ;
1866+
1867+ const config : PastoralistJSON = {
1868+ name : "test" ,
1869+ version : "1.0.0" ,
1870+ } ;
1871+
1872+ const mergedOptions : Options = {
1873+ checkSecurity : true ,
1874+ securityProvider : "osv" ,
1875+ } ;
1876+
1877+ const mockSpinner = {
1878+ start : mock ( ( ) => mockSpinner ) ,
1879+ fail : mock ( ) ,
1880+ } ;
1881+
1882+ const testError = new Error ( "Security check failed" ) ;
1883+
1884+ const mockSecurityChecker = {
1885+ checkSecurity : mock ( ( ) => Promise . reject ( testError ) ) ,
1886+ } ;
1887+
1888+ const deps = {
1889+ createSpinner : mock ( ( ) => mockSpinner ) ,
1890+ SecurityChecker : mock ( ( ) => mockSecurityChecker ) ,
1891+ determineSecurityScanPaths : mock ( ( ) => [ ] ) ,
1892+ green : mock ( ( text : string ) => text ) ,
1893+ } ;
1894+
1895+ await expect (
1896+ runSecurityCheck ( config , mergedOptions , false , log , deps ) ,
1897+ ) . rejects . toThrow ( "Security check failed" ) ;
1898+
1899+ expect ( mockSpinner . fail ) . toHaveBeenCalled ( ) ;
1900+ const failCall = mockSpinner . fail . mock . calls [ 0 ] [ 0 ] ;
1901+ expect ( failCall ) . toContain ( "security check failed" ) ;
1902+ expect ( failCall ) . toContain ( "Security check failed" ) ;
1903+ } ) ;
1904+
1905+ test ( "runSecurityCheck - handles non-Error throws and calls spinner.fail" , async ( ) => {
1906+ const { runSecurityCheck } = require ( "../../../src/cli/index" ) ;
1907+
1908+ const config : PastoralistJSON = {
1909+ name : "test" ,
1910+ version : "1.0.0" ,
1911+ } ;
1912+
1913+ const mergedOptions : Options = {
1914+ checkSecurity : true ,
1915+ securityProvider : "osv" ,
1916+ } ;
1917+
1918+ const mockSpinner = {
1919+ start : mock ( ( ) => mockSpinner ) ,
1920+ fail : mock ( ) ,
1921+ } ;
1922+
1923+ const mockSecurityChecker = {
1924+ checkSecurity : mock ( ( ) => Promise . reject ( "String error" ) ) ,
1925+ } ;
1926+
1927+ const deps = {
1928+ createSpinner : mock ( ( ) => mockSpinner ) ,
1929+ SecurityChecker : mock ( ( ) => mockSecurityChecker ) ,
1930+ determineSecurityScanPaths : mock ( ( ) => [ ] ) ,
1931+ green : mock ( ( text : string ) => text ) ,
1932+ } ;
1933+
1934+ await expect (
1935+ runSecurityCheck ( config , mergedOptions , false , log , deps ) ,
1936+ ) . rejects . toBe ( "String error" ) ;
1937+
1938+ expect ( mockSpinner . fail ) . toHaveBeenCalled ( ) ;
1939+ const failCall = mockSpinner . fail . mock . calls [ 0 ] [ 0 ] ;
1940+ expect ( failCall ) . toContain ( "security check failed" ) ;
1941+ expect ( failCall ) . toContain ( "String error" ) ;
1942+ } ) ;
0 commit comments