@@ -448,22 +448,26 @@ def create_new_component(name)
448448      it  "generates a pack with valid JavaScript variable names"  do 
449449        expect ( File . exist? ( component_pack ) ) . to  be ( true ) 
450450        pack_content  =  File . read ( component_pack ) 
451-          
451+ 
452452        # Check that the generated pack content is valid JavaScript 
453453        expect ( pack_content ) . to  include ( "import ReactOnRails from 'react-on-rails/client';" ) 
454454        expect ( pack_content ) . to  include ( "import #{ component_name }  ) 
455455        expect ( pack_content ) . to  include ( "ReactOnRails.register({#{ component_name }  ) 
456-          
456+ 
457457        # Verify that variable names don't contain dots (invalid in JS) 
458458        expect ( pack_content ) . not_to  match ( /ComponentWithCSSModule\. module/ ) 
459459        expect ( pack_content ) . not_to  match ( /import .+\. module/ ) 
460460      end 
461461
462462      it  "generates valid JavaScript that can be parsed without syntax errors"  do 
463463        pack_content  =  File . read ( component_pack ) 
464-          
464+ 
465465        # This would fail if the generated JavaScript has syntax errors 
466-         expect  {  eval ( pack_content . gsub ( /import.*from.*['"];/ ,  "" ) . gsub ( /ReactOnRails\. register.*/ ,  "" ) )  } . not_to  raise_error 
466+         # rubocop:disable Security/Eval 
467+         sanitized_content  =  pack_content . gsub ( /import.*from.*['"];/ ,  "" ) 
468+                                         . gsub ( /ReactOnRails\. register.*/ ,  "" ) 
469+         expect  {  eval ( sanitized_content )  } . not_to  raise_error 
470+         # rubocop:enable Security/Eval 
467471      end 
468472    end 
469473
@@ -691,7 +695,7 @@ def stub_packer_source_path(packer_source_path:, component_name:)
691695    end 
692696
693697    describe  "#component_name"  do 
694-       subject  {  described_class . instance . send ( :component_name ,  file_path )  } 
698+       subject ( :component_name )  {  described_class . instance . send ( :component_name ,  file_path )  } 
695699
696700      context  "with regular component file"  do 
697701        let ( :file_path )  {  "/path/to/MyComponent.jsx"  } 
@@ -717,7 +721,7 @@ def stub_packer_source_path(packer_source_path:, component_name:)
717721        # CSS modules should still work with component_name method, but they 
718722        # should not be processed as React components by the generator 
719723        it  "returns name with dot for CSS modules"  do 
720-           expect ( subject ) . to  eq  "HeavyMarkdownEditor.module" 
724+           expect ( component_name ) . to  eq  "HeavyMarkdownEditor.module" 
721725        end 
722726      end 
723727
0 commit comments