@@ -10,40 +10,20 @@ def filename
1010 'app/assets/javascripts/components/generated_component.es6.jsx'
1111 end
1212
13- test "creates the component file" do
14- run_generator %w( GeneratedComponent --es6 )
15-
16- assert_file filename
13+ def class_name
14+ 'GeneratedComponent'
1715 end
1816
19- test "creates the component file with a node argument " do
17+ test "uses es6 syntax " do
2018 run_generator %w( GeneratedComponent name --es6 )
21- assert_file filename , %r{name: React.PropTypes.node}
22- end
23-
24- test "creates the component file with various standard proptypes" do
25- proptypes = %w( string bool number array func number object any )
26- run_generator %w( GeneratedComponent ) + proptypes . map { |type | "my_#{ type } :#{ type } " } + [ "--es6" ]
27- proptypes . each do |type |
28- assert_file filename , %r(my#{ type . capitalize } : React.PropTypes.#{ type } )
29- end
30- end
3119
32- test "creates a component file with an instanceOf property" do
33- run_generator %w( GeneratedComponent favorite_food:instanceOf{food} --es6 )
34- assert_file filename , /favoriteFood: React.PropTypes.instanceOf\( Food\) /
20+ assert_file filename , /^class\s #{ class_name } \s extends\s React\. Component/
3521 end
3622
37- test "creates a component file with a oneOf property" do
38- run_generator %w( GeneratedComponent favorite_food:oneOf{pizza,hamburgers} --es6 )
39- assert_file filename , /favoriteFood: React.PropTypes.oneOf\( \[ 'pizza','hamburgers'\] \) /
40- end
41-
42- test "creates a component file with a oneOfType property" do
43- run_generator %w( GeneratedComponent favorite_food:oneOfType{string,Food} --es6 )
44- expected_property = "favoriteFood: React.PropTypes.oneOfType([React.PropTypes.string,React.PropTypes.instanceOf(Food)])"
23+ test "assigns defaultProps after class definintion" do
24+ run_generator %w( GeneratedComponent name --es6 )
4525
46- assert_file filename , Regexp . new ( Regexp . quote ( expected_property ) )
26+ assert_file filename , / \s ^ #{ class_name } \. propTypes/
4727 end
4828
4929 test "generates working jsx" do
0 commit comments