cornucopia 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,7 +57,7 @@ describe Cornucopia::Capybara::PageDiagnostics, type: :feature do
57
57
 
58
58
  report.close
59
59
 
60
- report_text = File.read(report.report_contents_page_name)
60
+ report_text = File.read(report.report_test_contents_page_name)
61
61
  expect(report_text).not_to match /No Errors to report/
62
62
  expect(report_text).to match /\>Page Dump:\</
63
63
  expect(report_text).to match /\>\npage_url\n\</
@@ -92,7 +92,7 @@ describe Cornucopia::Capybara::PageDiagnostics, type: :feature do
92
92
 
93
93
  report.close
94
94
 
95
- report_text = File.read(report.report_contents_page_name)
95
+ report_text = File.read(report.report_test_contents_page_name)
96
96
  expect(report_text).not_to match /No Errors to report/
97
97
  expect(report_text).not_to match /\>\noptions\n\</
98
98
  expect(report_text).not_to match /\>\nreport\n\</
@@ -131,7 +131,7 @@ describe Cornucopia::Capybara::PageDiagnostics, type: :feature do
131
131
 
132
132
  report.close
133
133
 
134
- report_text = File.read(report.report_contents_page_name)
134
+ report_text = File.read(report.report_test_contents_page_name)
135
135
  expect(report_text).not_to match /No Errors to report/
136
136
  expect(report_text).not_to match /\>\noptions\n\</
137
137
  expect(report_text).not_to match /\>\nreport\n\</
@@ -171,7 +171,7 @@ describe Cornucopia::Capybara::PageDiagnostics, type: :feature do
171
171
  Cornucopia::Capybara::PageDiagnostics.dump_details(report: report)
172
172
  report.close
173
173
 
174
- report_text = File.read(report.report_contents_page_name)
174
+ report_text = File.read(report.report_test_contents_page_name)
175
175
  expect(report_text).not_to match /No Errors to report/
176
176
  expect(report_text).not_to match /\>\noptions\n\</
177
177
  expect(report_text).not_to match /\>\nreport\n\</
@@ -209,7 +209,7 @@ describe Cornucopia::Capybara::PageDiagnostics, type: :feature do
209
209
 
210
210
  report.close
211
211
 
212
- report_text = File.read(report.report_contents_page_name)
212
+ report_text = File.read(report.report_test_contents_page_name)
213
213
  expect(report_text).not_to match /No Errors to report/
214
214
  expect(report_text.scan(/\>Super cool report dump:\</).length).to be == 1
215
215
  end
@@ -233,7 +233,7 @@ describe Cornucopia::Capybara::PageDiagnostics, type: :feature do
233
233
 
234
234
  report.close
235
235
 
236
- report_text = File.read(report.report_contents_page_name)
236
+ report_text = File.read(report.report_test_contents_page_name)
237
237
  expect(report_text).not_to match /No Errors to report/
238
238
  expect(report_text.scan(/\>Super cool report dump:\</).length).to be == 1
239
239
  expect(report_text).to match /Could not save screen_shot./
@@ -255,7 +255,7 @@ describe Cornucopia::Capybara::PageDiagnostics, type: :feature do
255
255
 
256
256
  report.close
257
257
 
258
- report_text = File.read(report.report_contents_page_name)
258
+ report_text = File.read(report.report_test_contents_page_name)
259
259
  expect(report_text).not_to match /No Errors to report/
260
260
  expect(report_text).to match /\>an existing section\</
261
261
  expect(report_text).to match /\>\nsomething\n\</
@@ -831,7 +831,7 @@ describe Cornucopia::Util::ConfiguredReport do
831
831
 
832
832
  builder.generate_report(report)
833
833
 
834
- full_table = File.read(report.report_contents_page_name)
834
+ full_table = File.read(report.report_test_contents_page_name)
835
835
 
836
836
  expect(full_table).not_to match(/\"cornucopia-show-hide-section\"/)
837
837
  expect(full_table).to match(/\>\ntest\n\</)
@@ -863,7 +863,7 @@ describe Cornucopia::Util::ConfiguredReport do
863
863
  table.write_stats("Something_Extra", "A value")
864
864
  end
865
865
 
866
- full_table = File.read(report.report_contents_page_name)
866
+ full_table = File.read(report.report_test_contents_page_name)
867
867
 
868
868
  expect(full_table).to match(/\"cornucopia-show-hide-section\"/)
869
869
  expect(full_table).to match(/\>\ntest\n\</)
@@ -897,7 +897,7 @@ describe Cornucopia::Util::ConfiguredReport do
897
897
 
898
898
  builder.generate_report(report)
899
899
 
900
- full_table = File.read(report.report_contents_page_name)
900
+ full_table = File.read(report.report_test_contents_page_name)
901
901
 
902
902
  expect(full_table).to match(/\"cornucopia-show-hide-section\"/)
903
903
  expect(full_table).to match(/\>\ntest\n\</)
@@ -105,7 +105,7 @@ describe Cornucopia::Util::LogCapture do
105
105
 
106
106
  Cornucopia::Util::LogCapture.capture_logs(nil)
107
107
 
108
- report_data = File.read(Rails.root.join("cornucopia_report/cornucopia_report/report_contents.html"))
108
+ report_data = File.read(Rails.root.join("cornucopia_report/cornucopia_report/test_1/report_contents.html"))
109
109
  expect(report_data).to match /#{lines[-500..-1].join("\n")}/
110
110
  expect(report_data).to_not match /#{lines[-501..-1].join("\n")}/
111
111
  end
@@ -124,7 +124,7 @@ describe Cornucopia::Util::LogCapture do
124
124
  expect(Rails).to receive(:root).at_least(1).and_return(new_root)
125
125
  Cornucopia::Util::LogCapture.capture_logs(nil)
126
126
 
127
- report_data = File.read(File.join(new_root, "cornucopia_report/cornucopia_report/report_contents.html"))
127
+ report_data = File.read(File.join(new_root, "cornucopia_report/cornucopia_report/test_1/report_contents.html"))
128
128
  expect(report_data).to match /#{lines[-500..-1].join("\n")}/
129
129
  expect(report_data).to_not match /#{lines[-501..-1].join("\n")}/
130
130
  end
@@ -143,7 +143,7 @@ describe Cornucopia::Util::LogCapture do
143
143
 
144
144
  Cornucopia::Util::LogCapture.capture_logs(nil)
145
145
 
146
- report_data = File.read(Rails.root.join("cornucopia_report/cornucopia_report/report_contents.html"))
146
+ report_data = File.read(Rails.root.join("cornucopia_report/cornucopia_report/test_1/report_contents.html"))
147
147
  expect(report_data).to match /#{lines[-500..-1].join("\n")}/
148
148
  expect(report_data).to_not match /#{lines[-501..-1].join("\n")}/
149
149
  end
@@ -430,6 +430,11 @@ describe Cornucopia::Util::ReportBuilder do
430
430
  to be == File.join(report_folder, "index.html").to_s
431
431
  end
432
432
 
433
+ it "returns the #report_test_base_page_name" do
434
+ expect(send(report_settings[:report]).report_test_base_page_name).
435
+ to be == File.join(report_folder, "test_1/index.html").to_s
436
+ end
437
+
433
438
  it "returns the #index_base_page_name" do
434
439
  expect(send(report_settings[:report]).index_base_page_name).to be == File.join(index_folder, "index.html").to_s
435
440
  end
@@ -439,6 +444,11 @@ describe Cornucopia::Util::ReportBuilder do
439
444
  to be == File.join(report_folder, "report_contents.html").to_s
440
445
  end
441
446
 
447
+ it "returns the #report_test_contents_page_name" do
448
+ expect(send(report_settings[:report]).report_test_contents_page_name).
449
+ to be == File.join(report_folder, "test_1/report_contents.html").to_s
450
+ end
451
+
442
452
  it "returns the #index_contents_page_name" do
443
453
  expect(send(report_settings[:report]).index_contents_page_name).
444
454
  to be == File.join(index_folder, "report_contents.html").to_s
@@ -624,7 +634,7 @@ describe Cornucopia::Util::ReportBuilder do
624
634
  end
625
635
 
626
636
  groups.each do |other_group_name, other_group_indexes|
627
- if (other_group_name != group_name)
637
+ if other_group_name != group_name
628
638
  expect((group_indexes.min < other_group_indexes.min && group_indexes.max < other_group_indexes.min) ||
629
639
  (group_indexes.min > other_group_indexes.max && group_indexes.max > other_group_indexes.max)).
630
640
  to be_truthy
@@ -642,6 +652,102 @@ describe Cornucopia::Util::ReportBuilder do
642
652
  end
643
653
  end
644
654
 
655
+ describe "#rebuild_report_holder_page" do
656
+ it "intializes report files" do
657
+ current_report = send(report_settings[:report])
658
+
659
+ expect(current_report).to receive(:initialize_report_files).and_call_original
660
+
661
+ current_report.rebuild_report_holder_page
662
+
663
+ expect(File.exists?(File.join(report_folder, "index.html"))).to be_truthy
664
+ expect(File.exists?(File.join(report_folder, "report.js"))).to be_truthy
665
+ expect(File.exists?(File.join(report_folder, "cornucopia.css"))).to be_truthy
666
+ end
667
+
668
+ it "creates the report folder" do
669
+ current_report = send(report_settings[:report])
670
+
671
+ current_report.rebuild_report_holder_page
672
+
673
+ expect(File.directory?(report_folder)).to be_truthy
674
+ end
675
+
676
+ it "builds the holder file" do
677
+ current_report = send(report_settings[:report])
678
+
679
+ test_names = []
680
+ report_body = "".html_safe
681
+
682
+ rand(1..5).times do
683
+ test_name = Faker::Lorem.sentence
684
+ test_names << test_name
685
+
686
+ current_report.instance_variable_set(:@test_name, test_name)
687
+ current_report.instance_variable_set(:@test_list_item, nil)
688
+
689
+ report_body += current_report.test_list_item
690
+ end
691
+
692
+ current_report.instance_variable_set(:@report_body, report_body)
693
+
694
+ current_report.rebuild_report_holder_page
695
+
696
+ report_page = Capybara::Node::Simple.new(File.read(File.join(report_folder, "index.html")))
697
+
698
+ expect(report_page.all(".coruncopia-report-link").length).to eq(test_names.length)
699
+ expect(report_page.find("#report-display-document")).to be
700
+
701
+ test_names.each_with_index do |test_name, test_index|
702
+ expect(report_page.all(".coruncopia-report-link")[test_index].text).to eq(test_name)
703
+ end
704
+ end
705
+ end
706
+
707
+ describe "#test_list_item" do
708
+ it "is html_safe?" do
709
+ current_report = send(report_settings[:report])
710
+
711
+ expect(current_report.test_list_item).to be_html_safe
712
+ end
713
+
714
+ it "creates a list item" do
715
+ current_report = send(report_settings[:report])
716
+
717
+ list_item = current_report.test_list_item
718
+ expect(list_item).to match /\<a class=\"coruncopia-report-link\"/
719
+ expect(list_item).to match /\<li\>/
720
+ expect(list_item).to match /\<\/li\>/
721
+ end
722
+ end
723
+
724
+ describe "#initialize_report_test_files" do
725
+ it "should create the report test folder" do
726
+ current_report = send(report_settings[:report])
727
+
728
+ FileUtils.mkdir_p current_report.index_folder_name
729
+ current_report.rebuild_index_page
730
+
731
+ post_file = File.read(File.join(current_report.index_folder_name, "report_contents.html"))
732
+ expect(post_file).not_to match /\>#{report_settings[:sub_folder]}\</
733
+
734
+ current_report.initialize_report_test_files
735
+
736
+ test_report_folder = current_report.report_test_folder_name
737
+ expect(File.exists?(test_report_folder)).to be_truthy
738
+
739
+ post_file = File.read(File.join(current_report.index_folder_name, "report_contents.html"))
740
+ expect(post_file).to match /\>#{report_settings[:sub_folder]}\</
741
+
742
+ expect(File.exists?(File.join(test_report_folder, "index.html"))).to be_truthy
743
+ expect(File.exists?(File.join(test_report_folder, "report_contents.html"))).to be_truthy
744
+ expect(File.exists?(File.join(test_report_folder, "collapse.gif"))).to be_truthy
745
+ expect(File.exists?(File.join(test_report_folder, "expand.gif"))).to be_truthy
746
+ expect(File.exists?(File.join(test_report_folder, "more_info.js"))).to be_truthy
747
+ expect(File.exists?(File.join(test_report_folder, "cornucopia.css"))).to be_truthy
748
+ end
749
+ end
750
+
645
751
  describe "#initialize_report_files" do
646
752
  it "should create the report folder" do
647
753
  current_report = send(report_settings[:report])
@@ -654,18 +760,42 @@ describe Cornucopia::Util::ReportBuilder do
654
760
 
655
761
  current_report.initialize_report_files
656
762
 
657
- report_folder = current_report.report_folder_name
658
- expect(File.exists?(report_folder)).to be_truthy
763
+ test_report_folder = current_report.report_folder_name
764
+ expect(File.exists?(test_report_folder)).to be_truthy
659
765
 
660
766
  post_file = File.read(File.join(current_report.index_folder_name, "report_contents.html"))
661
767
  expect(post_file).to match /\>#{report_settings[:sub_folder]}\</
662
768
 
663
- expect(File.exists?(File.join(report_folder, "index.html"))).to be_truthy
664
- expect(File.exists?(File.join(report_folder, "report_contents.html"))).to be_truthy
665
- expect(File.exists?(File.join(report_folder, "collapse.gif"))).to be_truthy
666
- expect(File.exists?(File.join(report_folder, "expand.gif"))).to be_truthy
667
- expect(File.exists?(File.join(report_folder, "more_info.js"))).to be_truthy
668
- expect(File.exists?(File.join(report_folder, "cornucopia.css"))).to be_truthy
769
+ expect(File.exists?(File.join(test_report_folder, "index.html"))).to be_truthy
770
+ expect(File.exists?(File.join(test_report_folder, "report.js"))).to be_truthy
771
+ expect(File.exists?(File.join(test_report_folder, "cornucopia.css"))).to be_truthy
772
+ end
773
+ end
774
+
775
+ describe "#initialize_basic_report_files" do
776
+ it "should create the report folder" do
777
+ current_report = send(report_settings[:report])
778
+
779
+ FileUtils.mkdir_p current_report.index_folder_name
780
+ current_report.rebuild_index_page
781
+
782
+ post_file = File.read(File.join(current_report.index_folder_name, "report_contents.html"))
783
+ expect(post_file).not_to match /\>#{report_settings[:sub_folder]}\</
784
+
785
+ current_report.initialize_basic_report_files
786
+
787
+ test_report_folder = current_report.report_folder_name
788
+ expect(File.exists?(test_report_folder)).to be_truthy
789
+
790
+ post_file = File.read(File.join(current_report.index_folder_name, "report_contents.html"))
791
+ expect(post_file).to match /\>#{report_settings[:sub_folder]}\</
792
+
793
+ expect(File.exists?(File.join(test_report_folder, "index.html"))).to be_truthy
794
+ expect(File.exists?(File.join(test_report_folder, "report_contents.html"))).to be_truthy
795
+ expect(File.exists?(File.join(test_report_folder, "collapse.gif"))).to be_truthy
796
+ expect(File.exists?(File.join(test_report_folder, "expand.gif"))).to be_truthy
797
+ expect(File.exists?(File.join(test_report_folder, "more_info.js"))).to be_truthy
798
+ expect(File.exists?(File.join(test_report_folder, "cornucopia.css"))).to be_truthy
669
799
  end
670
800
  end
671
801
 
@@ -683,10 +813,35 @@ describe Cornucopia::Util::ReportBuilder do
683
813
  end
684
814
  end
685
815
 
816
+ describe "#report_test_folder_name" do
817
+ it "calls report_folder_name" do
818
+ current_report = send(report_settings[:report])
819
+
820
+ expect(current_report).to receive(:report_folder_name).and_call_original
821
+
822
+ expect(current_report.report_test_folder_name.to_s).to be == Rails.root.join(report_settings[:index_folder],
823
+ report_settings[:sub_folder]).to_s + "/test_1"
824
+
825
+ expect(File.exists?(current_report.report_test_contents_page_name)).to be_falsey
826
+ end
827
+
828
+ it "gets a different folder inside within_table" do
829
+ current_report = send(report_settings[:report])
830
+
831
+ expect(current_report.report_test_folder_name.to_s).to be == Rails.root.join(report_settings[:index_folder],
832
+ report_settings[:sub_folder]).to_s + "/test_1"
833
+
834
+ current_report.within_test(Faker::Lorem.sentence) do
835
+ expect(current_report.report_test_folder_name.to_s).to be == Rails.root.join(report_settings[:index_folder],
836
+ report_settings[:sub_folder]).to_s + "/test_2"
837
+ end
838
+ end
839
+ end
840
+
686
841
  describe "#open_report_contents_file" do
687
842
  it "initializes the report_contents file" do
688
843
  current_report = send(report_settings[:report])
689
- expect(current_report).to receive(:initialize_report_files).and_call_original
844
+ expect(current_report).to receive(:initialize_basic_report_files).and_call_original
690
845
  write_contents = Faker::Lorem.paragraphs(rand(5..8)).join("\n\n")
691
846
 
692
847
  current_report.open_report_contents_file do |writer|
@@ -700,6 +855,23 @@ describe Cornucopia::Util::ReportBuilder do
700
855
  end
701
856
  end
702
857
 
858
+ describe "#open_report_test_contents_file" do
859
+ it "initializes the report_contents file" do
860
+ current_report = send(report_settings[:report])
861
+ expect(current_report).to receive(:initialize_report_test_files).and_call_original
862
+ write_contents = Faker::Lorem.paragraphs(rand(5..8)).join("\n\n")
863
+
864
+ current_report.open_report_test_contents_file do |writer|
865
+ writer.write(write_contents)
866
+ end
867
+
868
+ write_contents = "".html_safe + write_contents
869
+
870
+ post_data = File.read(current_report.report_test_contents_page_name)
871
+ expect(post_data).to match /#{write_contents}/
872
+ end
873
+ end
874
+
703
875
  describe "#close" do
704
876
  it "should create an empty report if nothing was reported" do
705
877
  current_report = send(report_settings[:report])
@@ -733,7 +905,7 @@ describe Cornucopia::Util::ReportBuilder do
733
905
 
734
906
  current_report.close
735
907
 
736
- post_data = File.read(current_report.report_contents_page_name)
908
+ post_data = File.read(current_report.report_test_contents_page_name)
737
909
  expect(post_data).not_to match /No errors to report/i
738
910
 
739
911
  expect(Cornucopia::Util::ReportBuilder.class_variable_get("@@current_report")).not_to be
@@ -752,13 +924,189 @@ describe Cornucopia::Util::ReportBuilder do
752
924
 
753
925
  current_report.close
754
926
 
755
- post_data = File.read(current_report.report_contents_page_name)
927
+ post_data = File.read(current_report.report_test_contents_page_name)
756
928
  expect(post_data).not_to match /No errors to report/i
757
929
 
758
930
  expect(Cornucopia::Util::ReportBuilder.class_variable_get("@@current_report")).not_to be
759
931
  end
760
932
  end
761
933
 
934
+ describe "#within_test" do
935
+ let(:test_names) do
936
+ rand(3..5).times.map do
937
+ Faker::Lorem.sentence
938
+ end
939
+ end
940
+ let(:section_names) do
941
+ test_names.length.times.map do
942
+ Faker::Lorem.sentence
943
+ end
944
+ end
945
+
946
+ it "starts a test with a specific name" do
947
+ current_report = send(report_settings[:report])
948
+
949
+ current_report.within_test(test_names[0]) do
950
+ current_report.within_section(section_names[0]) do |report_section|
951
+ report_section.within_table do |report_table|
952
+ report_table.write_stats(Faker::Lorem.word, Faker::Lorem.sentence)
953
+ end
954
+ end
955
+ end
956
+
957
+ current_report.close
958
+
959
+ report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
960
+
961
+ expect(report_page.all(".coruncopia-report-link").length).to eq 1
962
+ expect(report_page.all(".coruncopia-report-link")[0].text).to eq test_names[0]
963
+ expect(report_page.all(".coruncopia-report-link")[0]["href"]).to eq "test_1/index.html"
964
+ end
965
+
966
+ it "doesn't output anything if nothing is written to a section or table" do
967
+ current_report = send(report_settings[:report])
968
+
969
+ current_report.within_test(test_names[0]) do
970
+ end
971
+
972
+ current_report.close
973
+
974
+ report_page = Capybara::Node::Simple.new(File.read(current_report.report_contents_page_name))
975
+
976
+ expect(report_page.all(".cornucopia-no-errors").length).to eq 1
977
+ expect(report_page.all(".cornucopia-no-errors")[0].text).to eq "No Errors to report"
978
+ end
979
+
980
+ it "outputs multiple tests" do
981
+ current_report = send(report_settings[:report])
982
+
983
+ test_names.each_with_index do |test_name, test_index|
984
+ current_report.within_test(test_name) do
985
+ current_report.within_section(section_names[test_index]) do |report_section|
986
+ report_section.within_table do |report_table|
987
+ report_table.write_stats(Faker::Lorem.word, Faker::Lorem.sentence)
988
+ end
989
+ end
990
+ end
991
+ end
992
+
993
+ current_report.close
994
+
995
+ report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
996
+
997
+ expect(report_page.all(".coruncopia-report-link").length).to eq test_names.length
998
+
999
+ test_names.each_with_index do |test_name, test_index|
1000
+ expect(report_page.all(".coruncopia-report-link")[test_index].text).to eq test_name
1001
+ expect(report_page.all(".coruncopia-report-link")[test_index]["href"]).to eq "test_#{test_index + 1}/index.html"
1002
+ end
1003
+ end
1004
+
1005
+ it "handles a test within a test as an independent test" do
1006
+ current_report = send(report_settings[:report])
1007
+
1008
+ current_report.within_test(test_names[0]) do
1009
+ current_report.within_section(section_names[0]) do |report_section|
1010
+ report_section.within_table do |report_table|
1011
+ report_table.write_stats(Faker::Lorem.word, Faker::Lorem.sentence)
1012
+ current_report.within_test(test_names[1]) do
1013
+ current_report.within_section(section_names[1]) do |report_section|
1014
+ report_section.within_table do |report_table|
1015
+ report_table.write_stats(Faker::Lorem.word, Faker::Lorem.sentence)
1016
+ end
1017
+ end
1018
+ end
1019
+ end
1020
+ end
1021
+ end
1022
+
1023
+ current_report.close
1024
+
1025
+ report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
1026
+
1027
+ expect(report_page.all(".coruncopia-report-link").length).to eq 2
1028
+ expect(report_page.all(".coruncopia-report-link")[0].text).to eq test_names[0]
1029
+ expect(report_page.all(".coruncopia-report-link")[0]["href"]).to eq "test_1/index.html"
1030
+ expect(report_page.all(".coruncopia-report-link")[1].text).to eq test_names[1]
1031
+ expect(report_page.all(".coruncopia-report-link")[1]["href"]).to eq "test_2/index.html"
1032
+
1033
+ report_page = Capybara::Node::Simple.new(File.read(File.join(current_report.report_folder_name, "test_1/report_contents.html")))
1034
+ expect(report_page.all(".cornucopia-section-label").length).to eq 1
1035
+ expect(report_page.all(".cornucopia-section-label")[0].text).to eq section_names[0]
1036
+
1037
+ report_page = Capybara::Node::Simple.new(File.read(File.join(current_report.report_folder_name, "test_2/report_contents.html")))
1038
+ expect(report_page.all(".cornucopia-section-label").length).to eq 1
1039
+ expect(report_page.all(".cornucopia-section-label")[0].text).to eq section_names[1]
1040
+ end
1041
+
1042
+ it "restores to the old test if a test within a test" do
1043
+ current_report = send(report_settings[:report])
1044
+
1045
+ current_report.within_test(test_names[0]) do
1046
+ current_report.within_section(section_names[0]) do |report_section|
1047
+ report_section.within_table do |report_table|
1048
+ report_table.write_stats(Faker::Lorem.word, Faker::Lorem.sentence)
1049
+ current_report.within_test(test_names[1]) do
1050
+ current_report.within_section(section_names[1]) do |report_section|
1051
+ report_section.within_table do |report_table|
1052
+ report_table.write_stats(Faker::Lorem.word, Faker::Lorem.sentence)
1053
+ end
1054
+ end
1055
+ end
1056
+ end
1057
+ end
1058
+
1059
+ current_report.within_section(section_names[2]) do |report_section|
1060
+ report_section.within_table do |report_table|
1061
+ report_table.write_stats(Faker::Lorem.word, Faker::Lorem.sentence)
1062
+ end
1063
+ end
1064
+ end
1065
+
1066
+ current_report.close
1067
+
1068
+ report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
1069
+
1070
+ expect(report_page.all(".coruncopia-report-link").length).to eq 2
1071
+ expect(report_page.all(".coruncopia-report-link")[0].text).to eq test_names[0]
1072
+ expect(report_page.all(".coruncopia-report-link")[0]["href"]).to eq "test_1/index.html"
1073
+ expect(report_page.all(".coruncopia-report-link")[1].text).to eq test_names[1]
1074
+ expect(report_page.all(".coruncopia-report-link")[1]["href"]).to eq "test_2/index.html"
1075
+
1076
+ report_page = Capybara::Node::Simple.new(File.read(File.join(current_report.report_folder_name, "test_1/report_contents.html")))
1077
+ expect(report_page.all(".cornucopia-section-label").length).to eq 2
1078
+ expect(report_page.all(".cornucopia-section-label")[0].text).to eq section_names[0]
1079
+ expect(report_page.all(".cornucopia-section-label")[1].text).to eq section_names[2]
1080
+ end
1081
+
1082
+ it "numbers tests based on the tests that actually output something" do
1083
+ current_report = send(report_settings[:report])
1084
+
1085
+ test_names.each_with_index do |test_name, test_index|
1086
+ if test_index == 0 || test_index == test_names.length - 1
1087
+ current_report.within_test(test_name) do
1088
+ current_report.within_section(section_names[test_index]) do |report_section|
1089
+ report_section.within_table do |report_table|
1090
+ report_table.write_stats(Faker::Lorem.word, Faker::Lorem.sentence)
1091
+ end
1092
+ end
1093
+ end
1094
+ end
1095
+ end
1096
+
1097
+ current_report.close
1098
+
1099
+ report_page = Capybara::Node::Simple.new(File.read(current_report.report_base_page_name))
1100
+
1101
+ expect(report_page.all(".coruncopia-report-link").length).to eq 2
1102
+
1103
+ expect(report_page.all(".coruncopia-report-link")[0].text).to eq test_names[0]
1104
+ expect(report_page.all(".coruncopia-report-link")[0]["href"]).to eq "test_1/index.html"
1105
+ expect(report_page.all(".coruncopia-report-link")[1].text).to eq test_names[-1]
1106
+ expect(report_page.all(".coruncopia-report-link")[1]["href"]).to eq "test_2/index.html"
1107
+ end
1108
+ end
1109
+
762
1110
  describe "#within_section" do
763
1111
  it "should output passed in text to the report file" do
764
1112
  current_report = send(report_settings[:report])
@@ -770,7 +1118,7 @@ describe Cornucopia::Util::ReportBuilder do
770
1118
  expect(report_object.is_a?(Cornucopia::Util::ReportBuilder)).to be_truthy
771
1119
  end
772
1120
 
773
- post_data = File.read(current_report.report_contents_page_name)
1121
+ post_data = File.read(current_report.report_test_contents_page_name)
774
1122
  expect(post_data).to match /\>#{section_name}\</i
775
1123
  end
776
1124
 
@@ -787,8 +1135,8 @@ describe Cornucopia::Util::ReportBuilder do
787
1135
  end
788
1136
  end.to raise_exception
789
1137
 
790
- post_data = File.read(current_report.report_contents_page_name)
791
- expect(post_data[-1 * "\<\/div\>\n".length..-1]).to be == "\<\/div\>\n"
1138
+ post_data = File.read(current_report.report_test_contents_page_name)
1139
+ expect(post_data[-1 * "\<\/div\>\n<div class=\"cornucopia-end-section\" />\n".length..-1]).to be == "\<\/div\>\n<div class=\"cornucopia-end-section\" />\n"
792
1140
  end
793
1141
  end
794
1142
 
@@ -806,8 +1154,8 @@ describe Cornucopia::Util::ReportBuilder do
806
1154
  end
807
1155
  end
808
1156
 
809
- post_data = File.read(current_report.report_contents_page_name)
810
- expect(post_data[-1 * "\<\/div\>\n".length..-1]).to be == "\<\/div\>\n"
1157
+ post_data = File.read(current_report.report_test_contents_page_name)
1158
+ expect(post_data[-1 * "\<\/div\>\n<div class=\"cornucopia-end-section\" />\n".length..-1]).to be == "\<\/div\>\n<div class=\"cornucopia-end-section\" />\n"
811
1159
  expect(post_data).to match /\>\n#{table_label}\n\</
812
1160
  expect(post_data).to match /\>#{table_data}\</
813
1161
  end
@@ -828,8 +1176,8 @@ describe Cornucopia::Util::ReportBuilder do
828
1176
  end
829
1177
  end.to raise_exception
830
1178
 
831
- post_data = File.read(current_report.report_contents_page_name)
832
- expect(post_data[-1 * "\<\/div\>\n".length..-1]).to be == "\<\/div\>\n"
1179
+ post_data = File.read(current_report.report_test_contents_page_name)
1180
+ expect(post_data[-1 * "\<\/div\>\n<div class=\"cornucopia-end-section\" />\n".length..-1]).to be == "\<\/div\>\n<div class=\"cornucopia-end-section\" />\n"
833
1181
  expect(post_data).to match /\>\n#{table_label}\n\</
834
1182
  expect(post_data).to match /\>#{table_data}\</
835
1183
  expect(post_data).to match /This is an exception/
@@ -847,13 +1195,13 @@ describe Cornucopia::Util::ReportBuilder do
847
1195
  sub_table.write_stats "stat", "value"
848
1196
  end
849
1197
 
850
- mid_data = File.read(current_report.report_contents_page_name)
1198
+ mid_data = File.read(current_report.report_test_contents_page_name)
851
1199
  end
852
1200
  end
853
1201
 
854
1202
  current_report.close
855
1203
 
856
- post_data = File.read(current_report.report_contents_page_name)
1204
+ post_data = File.read(current_report.report_test_contents_page_name)
857
1205
 
858
1206
  expect(post_data).to match /\>\nstat\n\</
859
1207
  expect(mid_data).not_to match /\>\nstat\n\</
@@ -862,8 +1210,8 @@ describe Cornucopia::Util::ReportBuilder do
862
1210
 
863
1211
  describe "#unique_folder_name" do
864
1212
  it "returns the folder if there is no folder with that name" do
865
- current_report = send(report_settings[:report])
866
- report_folder = current_report.report_folder_name
1213
+ current_report = send(report_settings[:report])
1214
+ test_report_folder = current_report.report_folder_name
867
1215
 
868
1216
  new_folder = Faker::Lorem.word
869
1217
 
@@ -871,15 +1219,15 @@ describe Cornucopia::Util::ReportBuilder do
871
1219
  end
872
1220
 
873
1221
  it "returns a uniqe folder if there is a folder with that name" do
874
- current_report = send(report_settings[:report])
875
- report_folder = current_report.report_folder_name
1222
+ current_report = send(report_settings[:report])
1223
+ test_report_folder = current_report.report_folder_name
876
1224
 
877
1225
  new_folder = Faker::Lorem.word
878
1226
  num_folders = rand(5..10)
879
1227
 
880
- FileUtils.mkdir_p File.join(report_folder, new_folder)
1228
+ FileUtils.mkdir_p File.join(test_report_folder, new_folder)
881
1229
  num_folders.times do |folder_number|
882
- FileUtils.mkdir_p File.join(report_folder, "#{new_folder}_#{folder_number}")
1230
+ FileUtils.mkdir_p File.join(test_report_folder, "#{new_folder}_#{folder_number}")
883
1231
  end
884
1232
 
885
1233
  expect(current_report.unique_folder_name(new_folder)).to be == "#{new_folder}_#{num_folders}"
@@ -888,8 +1236,8 @@ describe Cornucopia::Util::ReportBuilder do
888
1236
 
889
1237
  describe "#unique_file_name" do
890
1238
  it "creates a unique file name if there are no files" do
891
- current_report = send(report_settings[:report])
892
- report_folder = current_report.report_folder_name
1239
+ current_report = send(report_settings[:report])
1240
+ test_report_folder = current_report.report_folder_name
893
1241
 
894
1242
  prefix = Faker::Lorem.word
895
1243
  postfix = Faker::Lorem.word
@@ -898,8 +1246,8 @@ describe Cornucopia::Util::ReportBuilder do
898
1246
  end
899
1247
 
900
1248
  it "creates a unique file name if there are some files already" do
901
- current_report = send(report_settings[:report])
902
- report_folder = current_report.report_folder_name
1249
+ current_report = send(report_settings[:report])
1250
+ test_report_folder = current_report.report_folder_name
903
1251
 
904
1252
  prefix = Faker::Lorem.word
905
1253
  postfix = Faker::Lorem.word
@@ -919,23 +1267,23 @@ describe Cornucopia::Util::ReportBuilder do
919
1267
 
920
1268
  describe "#image_link" do
921
1269
  it "moves the image file and creates an image element" do
922
- current_report = send(report_settings[:report])
923
- report_folder = current_report.report_folder_name
1270
+ current_report = send(report_settings[:report])
1271
+ test_report_folder = current_report.report_folder_name
924
1272
 
925
1273
  prefix = Faker::Lorem.word
926
1274
  postfix = Faker::Lorem.word
927
1275
 
928
- FileUtils.mkdir_p report_folder
1276
+ FileUtils.mkdir_p test_report_folder
929
1277
  Cornucopia::Util::FileAsset.asset("cornucopia.css").
930
- add_file(File.join(report_folder, "#{prefix}.#{postfix}"))
1278
+ add_file(File.join(test_report_folder, "#{prefix}.#{postfix}"))
931
1279
 
932
- expect(File.exists?(File.join(report_folder, "#{prefix}.#{postfix}"))).to be_truthy
933
- expect(File.exists?(File.join(report_folder, "#{prefix}_1.#{postfix}"))).to be_falsey
1280
+ expect(File.exists?(File.join(test_report_folder, "#{prefix}.#{postfix}"))).to be_truthy
1281
+ expect(File.exists?(File.join(test_report_folder, "#{prefix}_1.#{postfix}"))).to be_falsey
934
1282
 
935
- image_link = current_report.image_link(File.join(report_folder, "#{prefix}.#{postfix}"))
1283
+ image_link = current_report.image_link(File.join(test_report_folder, "#{prefix}.#{postfix}"))
936
1284
 
937
- expect(File.exists?(File.join(report_folder, "#{prefix}.#{postfix}"))).to be_falsey
938
- expect(File.exists?(File.join(report_folder, "#{prefix}_1.#{postfix}"))).to be_truthy
1285
+ expect(File.exists?(File.join(test_report_folder, "#{prefix}.#{postfix}"))).to be_falsey
1286
+ expect(File.exists?(File.join(test_report_folder, "#{prefix}_1.#{postfix}"))).to be_truthy
939
1287
 
940
1288
  expect(image_link).to be_html_safe
941
1289
  expect(image_link).to match /^\<img/i
@@ -945,25 +1293,25 @@ describe Cornucopia::Util::ReportBuilder do
945
1293
 
946
1294
  describe "#page_frame" do
947
1295
  it "dumps the html to a file, and returns an iframe element" do
948
- current_report = send(report_settings[:report])
949
- report_folder = current_report.report_folder_name
950
- source_html = "<html>\n<body>\nThis is some &amp; awesome text</body>\n</html>"
1296
+ current_report = send(report_settings[:report])
1297
+ test_report_folder = current_report.report_folder_name
1298
+ source_html = "<html>\n<body>\nThis is some &amp; awesome text</body>\n</html>"
951
1299
 
952
- FileUtils.mkdir_p report_folder
953
- Cornucopia::Util::FileAsset.asset("cornucopia.css").add_file(File.join(report_folder, "page_dump.html"))
1300
+ FileUtils.mkdir_p test_report_folder
1301
+ Cornucopia::Util::FileAsset.asset("cornucopia.css").add_file(File.join(test_report_folder, "page_dump.html"))
954
1302
 
955
- expect(File.exists?(File.join(report_folder, "page_dump.html"))).to be_truthy
956
- expect(File.exists?(File.join(report_folder, "page_dump_1.html"))).to be_falsey
1303
+ expect(File.exists?(File.join(test_report_folder, "page_dump.html"))).to be_truthy
1304
+ expect(File.exists?(File.join(test_report_folder, "page_dump_1.html"))).to be_falsey
957
1305
 
958
1306
  page_link = current_report.page_frame(source_html)
959
1307
 
960
- expect(File.exists?(File.join(report_folder, "page_dump.html"))).to be_truthy
961
- expect(File.exists?(File.join(report_folder, "page_dump_1.html"))).to be_truthy
1308
+ expect(File.exists?(File.join(test_report_folder, "page_dump.html"))).to be_truthy
1309
+ expect(File.exists?(File.join(test_report_folder, "page_dump_1.html"))).to be_truthy
962
1310
 
963
1311
  expect(page_link).to be_html_safe
964
1312
  expect(page_link).to match /\<iframe/i
965
1313
  expect(page_link).to match /src=\"page_dump_1.html\"/i
966
- expect(File.read(File.join(report_folder, "page_dump_1.html"))).to be == source_html
1314
+ expect(File.read(File.join(test_report_folder, "page_dump_1.html"))).to be == source_html
967
1315
  end
968
1316
  end
969
1317