FYI, This is the full error on the terminal window.
Failures: 1) ApplicationHelper application_logo_dark_url when dark theme is present when dark logo is present should return correct url Failure/Error: expect(helper.application_logo_dark_url).to eq(SiteSetting.site_logo_dark_url) expected: "http://test.localhost/images/logo-dark.png" got: nil (compared using ==) # ./spec/helpers/application_helper_spec.rb:190:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 2) BackupRestore::DatabaseRestorer#restore with real psql restores from PostgreSQL 10 Failure/Error: raise DatabaseRestoreError.new("psql failed: #{last_line}") if Process.last_status&.exitstatus != 0 BackupRestore::DatabaseRestoreError: psql failed: ERROR: relation "foo" already exists # ./lib/backup_restore/database_restorer.rb:92:in `restore_dump' # ./lib/backup_restore/database_restorer.rb:26:in `restore' # ./spec/lib/backup_restore/shared_context_for_backup_restore.rb:59:in `execute_stubbed_restore' # ./spec/lib/backup_restore/database_restorer_spec.rb:40:in `restore' # ./spec/lib/backup_restore/database_restorer_spec.rb:44:in `expect_restore_to_work' # ./spec/lib/backup_restore/database_restorer_spec.rb:65:in `block (4 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 3) OptimizedImage.crop should produce cropped images (requires ImageMagick 7) Failure/Error: expect(cropped_size).to be < 200 expected: < 200 got: 210 # ./spec/models/optimized_image_spec.rb:26:in `block (3 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 4) Jobs::CleanUpCrawlerStats keeps only the top records from the previous day Failure/Error: expect(WebCrawlerRequest.all).to contain_exactly(req1, req2, req3) expected collection contained: [#<WebCrawlerRequest id: 53, date: "2022-08-16", user_agent: "Googlebot 3.0", count: 100>, #<WebCrawl...count: 40>, #<WebCrawlerRequest id: 56, date: "2022-08-16", user_agent: "Googlebot 6.0", count: 50>] actual collection contained: [#<WebCrawlerRequest id: 9, date: "2022-08-09", user_agent: "Googlebot", count: 4>, #<WebCrawlerReque...count: 40>, #<WebCrawlerRequest id: 56, date: "2022-08-16", user_agent: "Googlebot 6.0", count: 50>] the extra elements were: [#<WebCrawlerRequest id: 9, date: "2022-08-09", user_agent: "Googlebot", count: 4>, #<WebCrawlerReque...ebot", count: 1>, #<WebCrawlerRequest id: 49, date: "2022-08-18", user_agent: "Superbot", count: 1>] # ./spec/jobs/clean_up_crawler_stats_spec.rb:29:in `block (2 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 5) Report page_view_logged_in request reports with no page_view_logged_in records returns an empty report Failure/Error: expect(report.data).to be_blank expected `[{:x=>Mon, 08 Aug 2022, :y=>2}, {:x=>Tue, 09 Aug 2022, :y=>6}, {:x=>Wed, 10 Aug 2022, :y=>4}].blank?` to be truthy, got false # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 6) Report page_view_logged_in request reports with page_view_logged_in returns a report with data Failure/Error: expect(report.total).to eq 49 expected: 49 got: 61 (compared using ==) # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 7) Report consolidated_page_views with no data works Failure/Error: expect(report[:data]).to be_empty expected `[{:x=>Mon, 08 Aug 2022, :y=>2}, {:x=>Tue, 09 Aug 2022, :y=>6}, {:x=>Wed, 10 Aug 2022, :y=>4}].empty?` to be truthy, got false # ./spec/models/report_spec.rb:1196:in `block (5 levels) in <main>' # ./spec/models/report_spec.rb:1195:in `each' # ./spec/models/report_spec.rb:1195:in `block (4 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 8) Report http_background request reports with no http_background records returns an empty report Failure/Error: expect(report.data).to be_blank expected `[{:x=>Tue, 09 Aug 2022, :y=>1}, {:x=>Wed, 10 Aug 2022, :y=>2}].blank?` to be truthy, got false # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 9) Report http_background request reports with http_background returns a report with data Failure/Error: expect(report.total).to eq 49 expected: 49 got: 52 (compared using ==) # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 10) Report http_total request reports with no http_total records returns an empty report Failure/Error: expect(report.data).to be_blank expected `[{:x=>Tue, 09 Aug 2022, :y=>14}, {:x=>Wed, 10 Aug 2022, :y=>28}].blank?` to be truthy, got false # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 11) Report http_total request reports with http_total returns a report with data Failure/Error: expect(report.total).to eq 49 expected: 49 got: 91 (compared using ==) # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 12) Report page_view_anon request reports with no page_view_anon records returns an empty report Failure/Error: expect(report.data).to be_blank expected `[{:x=>Mon, 08 Aug 2022, :y=>1}, {:x=>Tue, 09 Aug 2022, :y=>7}, {:x=>Wed, 10 Aug 2022, :y=>10}, {:x=>Tue, 16 Aug 2022, :y=>1}].blank?` to be truthy, got false # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 13) Report page_view_anon request reports with page_view_anon returns a report with data Failure/Error: expect(report.total).to eq 49 expected: 49 got: 68 (compared using ==) # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 14) Report http_2xx request reports with http_2xx returns a report with data Failure/Error: expect(report.total).to eq 49 expected: 49 got: 106 (compared using ==) # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 15) Report http_2xx request reports with no http_2xx records returns an empty report Failure/Error: expect(report.data).to be_blank expected `[{:x=>Tue, 09 Aug 2022, :y=>18}, {:x=>Wed, 10 Aug 2022, :y=>37}, {:x=>Thu, 11 Aug 2022, :y=>2}].blank?` to be truthy, got false # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 16) Report page_view_crawler request reports with no page_view_crawler records returns an empty report Failure/Error: expect(report.data).to be_blank expected `[{:x=>Mon, 08 Aug 2022, :y=>3}, {:x=>Tue, 09 Aug 2022, :y=>9}, {:x=>Wed, 10 Aug 2022, :y=>7}, {:x=>Thu, 11 Aug 2022, :y=>2}, {:x=>Tue, 16 Aug 2022, :y=>3}].blank?` to be truthy, got false # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 17) Report page_view_crawler request reports with page_view_crawler returns a report with data Failure/Error: expect(report.total).to eq 49 expected: 49 got: 73 (compared using ==) # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 18) Middleware::RequestTracker log_request can log requests correctly Failure/Error: expect(ApplicationRequest.http_total.first.count).to eq(4) expected: 4 got: 14 (compared using ==) # ./spec/lib/middleware/request_tracker_spec.rb:93:in `block (3 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 19) Middleware::RequestTracker log_request can exclude/include based on custom header Failure/Error: expect(ApplicationRequest.page_view_anon.first.count).to eq(2) expected: 2 got: 1 (compared using ==) # ./spec/lib/middleware/request_tracker_spec.rb:61:in `block (3 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 20) Middleware::RequestTracker log_request can log Discourse user agent requests correctly Failure/Error: expect(ApplicationRequest.page_view_crawler.first.count).to eq(1) expected: 1 got: 3 (compared using ==) # ./spec/lib/middleware/request_tracker_spec.rb:114:in `block (3 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 21) Middleware::RequestTracker log_request when ignoring anonymous page views does not ignore anonymous requests for public sites Failure/Error: expect(ApplicationRequest.http_total.first.count).to eq(2) expected: 2 got: 14 (compared using ==) # ./spec/lib/middleware/request_tracker_spec.rb:159:in `block (4 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 22) Middleware::RequestTracker log_request when ignoring anonymous page views ignores anonymous requests for private sites Failure/Error: expect(ApplicationRequest.http_total.first.count).to eq(2) expected: 2 got: 14 (compared using ==) # ./spec/lib/middleware/request_tracker_spec.rb:174:in `block (4 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 23) Middleware::RequestTracker full request can handle rogue user agents Failure/Error: expect(WebCrawlerRequest.where(user_agent: agent.encode('utf-8')).count).to eq(1) expected: 1 got: 3 (compared using ==) # ./spec/lib/middleware/request_tracker_spec.rb:35:in `block (3 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 24) ApplicationController#handle_theme selects the theme the user has selected Failure/Error: expect(controller.theme_id).to eq(SiteSetting.default_theme_id) expected: -1 got: nil (compared using ==) # ./spec/requests/application_controller_spec.rb:454:in `block (3 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 25) ApplicationController#handle_theme does not allow non privileged user to preview themes Failure/Error: expect(controller.theme_id).to eq(SiteSetting.default_theme_id) expected: -1 got: nil (compared using ==) # ./spec/requests/application_controller_spec.rb:492:in `block (3 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 26) CookedPostProcessor#post_process when processing images with title only generates overlay information using image title Failure/Error: expect(cpp.html).to match_html <<~HTML <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost#{upload.url}" data-download-href="//test.localhost/#{upload_path}/#{upload.sha1}" title="WAT"><img src="//test.localhost/#{upload_path}/optimized/1X/#{upload.sha1}_#{OptimizedImage::VERSION}_690x788.png" title="WAT" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p> HTML after sanitizing for extra white space and compactness, expected: <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/2X/a/a7f1ce9ea8991b68653b7ccce93545821a64eac8.png" data-download-href="//test.localhost/uploads/default/test_0/a7f1ce9ea8991b68653b7ccce93545821a64eac8" title="WAT"><img src="//test.localhost/uploads/default/test_0/original/1X/a7f1ce9ea8991b68653b7ccce93545821a64eac8.png" title="WAT" width="690" height="788"><div class="meta"> <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg> </div></a></div></p> to match: <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/1X/a7f1ce9ea8991b68653b7ccce93545821a64eac8.png" data-download-href="//test.localhost/uploads/default/test_0/a7f1ce9ea8991b68653b7ccce93545821a64eac8" title="WAT"><img src="//test.localhost/uploads/default/test_0/optimized/1X/a7f1ce9ea8991b68653b7ccce93545821a64eac8_2_690x788.png" title="WAT" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p> # ./spec/lib/cooked_post_processor_spec.rb:712:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 27) CookedPostProcessor#post_process when processing images with iPhone X screenshots crops the image Failure/Error: expect(cpp.html).to match_html <<~HTML <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost#{upload.url}" data-download-href="//test.localhost/#{upload_path}/#{upload.sha1}" title="logo.png"><img src="//test.localhost/#{upload_path}/optimized/1X/#{upload.sha1}_#{OptimizedImage::VERSION}_230x500.png" width="230" height="500"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1125Ă—2436 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p> HTML after sanitizing for extra white space and compactness, expected: <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/2X/a/a4bde38a475244bf968492a174dae41c6fc586ed.png" data-download-href="//test.localhost/uploads/default/test_0/a4bde38a475244bf968492a174dae41c6fc586ed" title="logo.png"><img src="//test.localhost/uploads/default/test_0/original/1X/a4bde38a475244bf968492a174dae41c6fc586ed.png" width="230" height="500"><div class="meta"> <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1125Ă—2436 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg> </div></a></div></p> to match: <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/1X/a4bde38a475244bf968492a174dae41c6fc586ed.png" data-download-href="//test.localhost/uploads/default/test_0/a4bde38a475244bf968492a174dae41c6fc586ed" title="logo.png"><img src="//test.localhost/uploads/default/test_0/optimized/1X/a4bde38a475244bf968492a174dae41c6fc586ed_2_230x500.png" width="230" height="500"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1125Ă—2436 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p> # ./spec/lib/cooked_post_processor_spec.rb:616:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 28) CookedPostProcessor#post_process when processing images with alt only generates overlay information using image alt Failure/Error: expect(cpp.html).to match_html <<~HTML <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost#{upload.url}" data-download-href="//test.localhost/#{upload_path}/#{upload.sha1}" title="RED"><img src="//test.localhost/#{upload_path}/optimized/1X/#{upload.sha1}_#{OptimizedImage::VERSION}_690x788.png" alt="RED" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">RED</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p> HTML after sanitizing for extra white space and compactness, expected: <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/2X/4/42792bed56e0662f221c635573264fa7826744bf.png" data-download-href="//test.localhost/uploads/default/test_0/42792bed56e0662f221c635573264fa7826744bf" title="RED"><img src="//test.localhost/uploads/default/test_0/original/1X/42792bed56e0662f221c635573264fa7826744bf.png" alt="RED" width="690" height="788"><div class="meta"> <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">RED</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg> </div></a></div></p> to match: <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/1X/42792bed56e0662f221c635573264fa7826744bf.png" data-download-href="//test.localhost/uploads/default/test_0/42792bed56e0662f221c635573264fa7826744bf" title="RED"><img src="//test.localhost/uploads/default/test_0/optimized/1X/42792bed56e0662f221c635573264fa7826744bf_2_690x788.png" alt="RED" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">RED</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p> # ./spec/lib/cooked_post_processor_spec.rb:740:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 29) CookedPostProcessor#post_process when processing images with large images generates overlay information Failure/Error: expect(cpp.html).to match_html <<~HTML <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost#{upload.url}" data-download-href="//test.localhost/#{upload_path}/#{upload.sha1}" title="logo.png"><img src="//test.localhost/#{upload_path}/optimized/1X/#{upload.sha1}_#{OptimizedImage::VERSION}_690x788.png" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p> HTML after sanitizing for extra white space and compactness, expected: <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/2X/2/226f54f14b0598565102b28645b46d185fc9e074.png" data-download-href="//test.localhost/uploads/default/test_0/226f54f14b0598565102b28645b46d185fc9e074" title="logo.png"><img src="//test.localhost/uploads/default/test_0/original/1X/226f54f14b0598565102b28645b46d185fc9e074.png" width="690" height="788"><div class="meta"> <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg> </div></a></div></p> to match: <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/1X/226f54f14b0598565102b28645b46d185fc9e074.png" data-download-href="//test.localhost/uploads/default/test_0/226f54f14b0598565102b28645b46d185fc9e074" title="logo.png"><img src="//test.localhost/uploads/default/test_0/optimized/1X/226f54f14b0598565102b28645b46d185fc9e074_2_690x788.png" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p> # ./spec/lib/cooked_post_processor_spec.rb:429:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 30) CookedPostProcessor#post_process when processing images with large images when using subfolders should escape the filename Failure/Error: stub_request(:get, "http://#{Discourse.current_hostname}/subfolder#{upload.url}").to_return(status: 200, body: File.new(Discourse.store.path_for(upload))) Errno::ENOENT: No such file or directory @ rb_sysopen - /home/praj/discourse/public/uploads/default/test_0/original/1X/02e0b630309b80d1e825a507acab66738c6806e4.png # ./spec/lib/cooked_post_processor_spec.rb:638:in `initialize' # ./spec/lib/cooked_post_processor_spec.rb:638:in `new' # ./spec/lib/cooked_post_processor_spec.rb:638:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 31) CookedPostProcessor#post_process when processing images with large images when using subfolders generates overlay information Failure/Error: stub_request(:get, "http://#{Discourse.current_hostname}/subfolder#{upload.url}").to_return(status: 200, body: File.new(Discourse.store.path_for(upload))) Errno::ENOENT: No such file or directory @ rb_sysopen - /home/praj/discourse/public/uploads/default/test_0/original/1X/02e0b630309b80d1e825a507acab66738c6806e4.png # ./spec/lib/cooked_post_processor_spec.rb:638:in `initialize' # ./spec/lib/cooked_post_processor_spec.rb:638:in `new' # ./spec/lib/cooked_post_processor_spec.rb:638:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 32) CookedPostProcessor#post_process when processing images with title and alt generates overlay information using image title and ignores alt Failure/Error: expect(cpp.html).to match_html <<~HTML <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost#{upload.url}" data-download-href="//test.localhost/#{upload_path}/#{upload.sha1}" title="WAT"><img src="//test.localhost/#{upload_path}/optimized/1X/#{upload.sha1}_#{OptimizedImage::VERSION}_690x788.png" title="WAT" alt="RED" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p> HTML after sanitizing for extra white space and compactness, expected: <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/2X/a/a8535366575dbb938beeb6902a5033c18eb995bd.png" data-download-href="//test.localhost/uploads/default/test_0/a8535366575dbb938beeb6902a5033c18eb995bd" title="WAT"><img src="//test.localhost/uploads/default/test_0/original/1X/a8535366575dbb938beeb6902a5033c18eb995bd.png" title="WAT" alt="RED" width="690" height="788"><div class="meta"> <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg> </div></a></div></p> to match: <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/1X/a8535366575dbb938beeb6902a5033c18eb995bd.png" data-download-href="//test.localhost/uploads/default/test_0/a8535366575dbb938beeb6902a5033c18eb995bd" title="WAT"><img src="//test.localhost/uploads/default/test_0/optimized/1X/a8535366575dbb938beeb6902a5033c18eb995bd_2_690x788.png" title="WAT" alt="RED" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750Ă—2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p> # ./spec/lib/cooked_post_processor_spec.rb:684:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 33) Wizard::Builder styling with colors when the default theme has been overridden by a theme without a color scheme should set the right default values Failure/Error: expect(colors_field.required).to eq(false) expected: false got: true (compared using ==) Diff: @@ -1 +1 @@ -false +true # ./spec/lib/wizard/wizard_builder_spec.rb:100:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 34) Wizard::Builder styling with colors when the default theme has not been override should set the right default values Failure/Error: SiteSetting.find_by(name: "default_theme_id").destroy! NoMethodError: undefined method `destroy!' for nil:NilClass # ./spec/lib/wizard/wizard_builder_spec.rb:71:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 35) Wizard::Builder styling with colors when the default theme has been override and the color scheme doesn't have a base scheme fallbacks to the color scheme name Failure/Error: expect(colors_field.required).to eq(false) expected: false got: true (compared using ==) Diff: @@ -1 +1 @@ -false +true # ./spec/lib/wizard/wizard_builder_spec.rb:89:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' 36) Wizard::Builder styling with colors when the default theme has been overridden by a theme with a color scheme should set the right default values Failure/Error: expect(colors_field.required).to eq(false) expected: false got: true (compared using ==) Diff: @@ -1 +1 @@ -false +true # ./spec/lib/wizard/wizard_builder_spec.rb:112:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' Finished in 33 minutes 32 seconds (files took 13.53 seconds to load) 16862 examples, 36 failures, 7 pending Failed examples: rspec ./spec/helpers/application_helper_spec.rb:189 # ApplicationHelper application_logo_dark_url when dark theme is present when dark logo is present should return correct url rspec ./spec/lib/backup_restore/database_restorer_spec.rb:63 # BackupRestore::DatabaseRestorer#restore with real psql restores from PostgreSQL 10 rspec ./spec/models/optimized_image_spec.rb:8 # OptimizedImage.crop should produce cropped images (requires ImageMagick 7) rspec ./spec/jobs/clean_up_crawler_stats_spec.rb:17 # Jobs::CleanUpCrawlerStats keeps only the top records from the previous day rspec ./spec/models/report_spec.rb[1:17:1:1] # Report page_view_logged_in request reports with no page_view_logged_in records returns an empty report rspec ./spec/models/report_spec.rb[1:17:2:1] # Report page_view_logged_in request reports with page_view_logged_in returns a report with data rspec ./spec/models/report_spec.rb:1194 # Report consolidated_page_views with no data works rspec ./spec/models/report_spec.rb[1:12:1:1] # Report http_background request reports with no http_background records returns an empty report rspec ./spec/models/report_spec.rb[1:12:2:1] # Report http_background request reports with http_background returns a report with data rspec ./spec/models/report_spec.rb[1:10:1:1] # Report http_total request reports with no http_total records returns an empty report rspec ./spec/models/report_spec.rb[1:10:2:1] # Report http_total request reports with http_total returns a report with data rspec ./spec/models/report_spec.rb[1:18:1:1] # Report page_view_anon request reports with no page_view_anon records returns an empty report rspec ./spec/models/report_spec.rb[1:18:2:1] # Report page_view_anon request reports with page_view_anon returns a report with data rspec ./spec/models/report_spec.rb[1:11:2:1] # Report http_2xx request reports with http_2xx returns a report with data rspec ./spec/models/report_spec.rb[1:11:1:1] # Report http_2xx request reports with no http_2xx records returns an empty report rspec ./spec/models/report_spec.rb[1:16:1:1] # Report page_view_crawler request reports with no page_view_crawler records returns an empty report rspec ./spec/models/report_spec.rb[1:16:2:1] # Report page_view_crawler request reports with page_view_crawler returns a report with data rspec ./spec/lib/middleware/request_tracker_spec.rb:64 # Middleware::RequestTracker log_request can log requests correctly rspec ./spec/lib/middleware/request_tracker_spec.rb:53 # Middleware::RequestTracker log_request can exclude/include based on custom header rspec ./spec/lib/middleware/request_tracker_spec.rb:103 # Middleware::RequestTracker log_request can log Discourse user agent requests correctly rspec ./spec/lib/middleware/request_tracker_spec.rb:151 # Middleware::RequestTracker log_request when ignoring anonymous page views does not ignore anonymous requests for public sites rspec ./spec/lib/middleware/request_tracker_spec.rb:166 # Middleware::RequestTracker log_request when ignoring anonymous page views ignores anonymous requests for private sites rspec ./spec/lib/middleware/request_tracker_spec.rb:27 # Middleware::RequestTracker full request can handle rogue user agents rspec ./spec/requests/application_controller_spec.rb:443 # ApplicationController#handle_theme selects the theme the user has selected rspec ./spec/requests/application_controller_spec.rb:489 # ApplicationController#handle_theme does not allow non privileged user to preview themes rspec ./spec/lib/cooked_post_processor_spec.rb:709 # CookedPostProcessor#post_process when processing images with title only generates overlay information using image title rspec ./spec/lib/cooked_post_processor_spec.rb:613 # CookedPostProcessor#post_process when processing images with iPhone X screenshots crops the image rspec ./spec/lib/cooked_post_processor_spec.rb:737 # CookedPostProcessor#post_process when processing images with alt only generates overlay information using image alt rspec ./spec/lib/cooked_post_processor_spec.rb:426 # CookedPostProcessor#post_process when processing images with large images generates overlay information rspec ./spec/lib/cooked_post_processor_spec.rb:654 # CookedPostProcessor#post_process when processing images with large images when using subfolders should escape the filename rspec ./spec/lib/cooked_post_processor_spec.rb:644 # CookedPostProcessor#post_process when processing images with large images when using subfolders generates overlay information rspec ./spec/lib/cooked_post_processor_spec.rb:681 # CookedPostProcessor#post_process when processing images with title and alt generates overlay information using image title and ignores alt rspec ./spec/lib/wizard/wizard_builder_spec.rb:99 # Wizard::Builder styling with colors when the default theme has been overridden by a theme without a color scheme should set the right default values rspec ./spec/lib/wizard/wizard_builder_spec.rb:74 # Wizard::Builder styling with colors when the default theme has not been override should set the right default values rspec ./spec/lib/wizard/wizard_builder_spec.rb:88 # Wizard::Builder styling with colors when the default theme has been override and the color scheme doesn't have a base scheme fallbacks to the color scheme name rspec ./spec/lib/wizard/wizard_builder_spec.rb:111 # Wizard::Builder styling with colors when the default theme has been overridden by a theme with a color scheme should set the right default values Randomized with seed 55699 The following specs have failed: ./spec/helpers/application_helper_spec.rb:189 ./spec/lib/backup_restore/database_restorer_spec.rb:63 ./spec/models/optimized_image_spec.rb:8 ./spec/jobs/clean_up_crawler_stats_spec.rb:17 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:224 ./spec/models/report_spec.rb:1194 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:224 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:224 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:224 ./spec/models/report_spec.rb:224 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:224 ./spec/lib/middleware/request_tracker_spec.rb:64 ./spec/lib/middleware/request_tracker_spec.rb:53 ./spec/lib/middleware/request_tracker_spec.rb:103 ./spec/lib/middleware/request_tracker_spec.rb:151 ./spec/lib/middleware/request_tracker_spec.rb:166 ./spec/lib/middleware/request_tracker_spec.rb:27 ./spec/requests/application_controller_spec.rb:443 ./spec/requests/application_controller_spec.rb:489 ./spec/lib/cooked_post_processor_spec.rb:709 ./spec/lib/cooked_post_processor_spec.rb:613 ./spec/lib/cooked_post_processor_spec.rb:737 ./spec/lib/cooked_post_processor_spec.rb:426 ./spec/lib/cooked_post_processor_spec.rb:654 ./spec/lib/cooked_post_processor_spec.rb:644 ./spec/lib/cooked_post_processor_spec.rb:681 ./spec/lib/wizard/wizard_builder_spec.rb:99 ./spec/lib/wizard/wizard_builder_spec.rb:74 ./spec/lib/wizard/wizard_builder_spec.rb:88 ./spec/lib/wizard/wizard_builder_spec.rb:111 Running Rspec: ./spec/lib/wizard/wizard_builder_spec.rb:111 The following specs have failed: ./spec/helpers/application_helper_spec.rb:189 ./spec/lib/backup_restore/database_restorer_spec.rb:63 ./spec/models/optimized_image_spec.rb:8 ./spec/jobs/clean_up_crawler_stats_spec.rb:17 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:224 ./spec/models/report_spec.rb:1194 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:224 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:224 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:224 ./spec/models/report_spec.rb:224 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:206 ./spec/models/report_spec.rb:224 ./spec/lib/middleware/request_tracker_spec.rb:64 ./spec/lib/middleware/request_tracker_spec.rb:53 ./spec/lib/middleware/request_tracker_spec.rb:103 ./spec/lib/middleware/request_tracker_spec.rb:151 ./spec/lib/middleware/request_tracker_spec.rb:166 ./spec/lib/middleware/request_tracker_spec.rb:27 ./spec/requests/application_controller_spec.rb:443 ./spec/requests/application_controller_spec.rb:489 ./spec/lib/cooked_post_processor_spec.rb:709 ./spec/lib/cooked_post_processor_spec.rb:613 ./spec/lib/cooked_post_processor_spec.rb:737 ./spec/lib/cooked_post_processor_spec.rb:426 ./spec/lib/cooked_post_processor_spec.rb:654 ./spec/lib/cooked_post_processor_spec.rb:644 ./spec/lib/cooked_post_processor_spec.rb:681 ./spec/lib/wizard/wizard_builder_spec.rb:99 ./spec/lib/wizard/wizard_builder_spec.rb:74 ./spec/lib/wizard/wizard_builder_spec.rb:88 ./spec/lib/wizard/wizard_builder_spec.rb:111 No examples found. Running Rspec: ./spec/lib/wizard/wizard_builder_spec.rb:88 DEPRECATION WARNING: Using legacy connection handling is deprecated. Please set `legacy_connection_handling` to `false` in your application. The new connection handling does not support `connection_handlers` getter and setter. Read more about how to migrate at: https://guides.rubyonrails.org/active_record_multiple_databases.html#migrate-to-the-new-connection-handling (called from <top (required)> at /home/praj/discourse/config/environment.rb:7) Run options: include {:locations=>{"./spec/lib/wizard/wizard_builder_spec.rb"=>[88]}} Randomized with seed 7356 F Failures: 1) Wizard::Builder styling with colors when the default theme has been override and the color scheme doesn't have a base scheme fallbacks to the color scheme name Failure/Error: expect(colors_field.required).to eq(false) expected: false got: true (compared using ==) Diff: @@ -1 +1 @@ -false +true # ./spec/lib/wizard/wizard_builder_spec.rb:89:in `block (5 levels) in <main>' # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>' Finished in 0.76303 seconds (files took 5.98 seconds to load) 1 example, 1 failure Failed examples: rspec ./spec/lib/wizard/wizard_builder_spec.rb:88 # Wizard::Builder styling with colors when the default theme has been override and the color scheme doesn't have a base scheme fallbacks to the color scheme name Randomized with seed 7356 The following specs have failed: ./spec/lib/wizard/wizard_builder_spec.rb:88 Running Rspec: ./spec/lib/wizard/wizard_builder_spec.rb:111 Running Rspec: ./spec/lib/wizard/wizard_builder_spec.rb:88 DEPRECATION WARNING: Using legacy connection handling is deprecated. Please set `legacy_connection_handling` to `false` in your application. The new connection handling does not support `connection_handlers` getter and setter. Read more about how to migrate at: https://guides.rubyonrails.org/active_record_multiple_databases.html#migrate-to-the-new-connection-handling (called from <top (required)> at /home/praj/discourse/config/environment.rb:7) Run options: include {:locations=>{"./spec/lib/wizard/wizard_builder_spec.rb"=>[88]}} Randomized with seed 55393 RSpec is shutting down and will print the summary report... Interrupt again to force quit. ^C Finished in 0.45834 seconds (files took 3.6 seconds to load) 0 examples, 0 failures Randomized with seed 55393 praj@LAPTOP-M3AHJNKB:~/discourse$ npm config set proxy null praj@LAPTOP-M3AHJNKB:~/discourse$ npm config set https-proxy null praj@LAPTOP-M3AHJNKB:~/discourse$ npm config set registry http://registry.npmjs.org/ praj@LAPTOP-M3AHJNKB:~/discourse$ bundle exec rake autospec If file watching is not working, you can force polling with: bundle exec rake autospec p l=3 Press [ENTER] to stop the current run Running Rspec: spec DEPRECATION WARNING: Using legacy connection handling is deprecated. Please set `legacy_connection_handling` to `false` in your application. The new connection handling does not support `connection_handlers` getter and setter. Read more about how to migrate at: https://guides.rubyonrails.org/active_record_multiple_databases.html#migrate-to-the-new-connection-handling (called from <top (required)> at /home/praj/discourse/config/environment.rb:7) ** ERROR: directory is already being watched! ** Directory: /home/praj/discourse/app/assets/javascripts/node_modules/discourse-hbr is already being watched through: /home/praj/discourse/app/assets/javascripts/discourse-hbr MORE INFO: https://github.com/guard/listen/blob/master/README.md ** ERROR: directory is already being watched! ** Directory: /home/praj/discourse/app/assets/javascripts/node_modules/discourse-common is already being watched through: /home/praj/discourse/app/assets/javascripts/discourse-common MORE INFO: https://github.com/guard/listen/blob/master/README.md ** ERROR: directory is already being watched! ** Directory: /home/praj/discourse/app/assets/javascripts/node_modules/admin is already being watched through: /home/praj/discourse/app/assets/javascripts/admin MORE INFO: https://github.com/guard/listen/blob/master/README.md ** ERROR: directory is already being watched! ** Directory: /home/praj/discourse/app/assets/javascripts/node_modules/discourse-widget-hbs is already being watched through: /home/praj/discourse/app/assets/javascripts/discourse-widget-hbs MORE INFO: https://github.com/guard/listen/blob/master/README.md ** ERROR: directory is already being watched! ** Directory: /home/praj/discourse/app/assets/javascripts/node_modules/discourse-ensure-deprecation-order is already being watched through: /home/praj/discourse/app/assets/javascripts/discourse-ensure-deprecation-order MORE INFO: https://github.com/guard/listen/blob/master/README.md ** ERROR: directory is already being watched! ** Directory: /home/praj/discourse/app/assets/javascripts/node_modules/select-kit is already being watched through: /home/praj/discourse/app/assets/javascripts/select-kit MORE INFO: https://github.com/guard/listen/blob/master/README.md ** ERROR: directory is already being watched! ** Directory: /home/praj/discourse/app/assets/javascripts/node_modules/pretty-text is already being watched through: /home/praj/discourse/app/assets/javascripts/pretty-text MORE INFO: https://github.com/guard/listen/blob/master/README.md ** ERROR: directory is already being watched! ** Directory: /home/praj/discourse/app/assets/javascripts/node_modules/discourse is already being watched through: /home/praj/discourse/app/assets/javascripts/discourse MORE INFO: https://github.com/guard/listen/blob/master/README.md ** ERROR: directory is already being watched! ** Directory: /home/praj/discourse/app/assets/javascripts/node_modules/truth-helpers is already being watched through: /home/praj/discourse/app/assets/javascripts/truth-helpers MORE INFO: https://github.com/guard/listen/blob/master/README.md ** ERROR: directory is already being watched! ** Directory: /home/praj/discourse/app/assets/javascripts/node_modules/wizard is already being watched through: /home/praj/discourse/app/assets/javascripts/wizard MORE INFO: https://github.com/guard/listen/blob/master/README.md Randomized with seed 22377 ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................DEPRECATION WARNING: ActiveRecord::Base.writing_role is deprecated and will be removed in Rails 7.1. Use `ActiveRecord.writing_role` instead. (called from block (2 levels) in <top (required)> at /home/praj/discourse/spec/rails_helper.rb:304) ..........................................................................................................................................................................................................................................................................................................................................................................................................................FFFF.......................................................................................................................................................................................................................................................................................................................................................................................................F....................................................................................................................................................................................................................................oxipng worker: `oxipng` not found; please provide proper binary or disable this worker (--no-oxipng argument or `:oxipng => false` through options) .................................................*..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................```