From f259b76d1aaee1960915d7c0118909a7cd840ad5 Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Thu, 30 Apr 2026 00:58:08 +0200 Subject: [PATCH 1/2] DEV: Make the spec more stable --- spec/system/admin_update_spec.rb | 36 +++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/spec/system/admin_update_spec.rb b/spec/system/admin_update_spec.rb index 6b9f883..03c1b67 100644 --- a/spec/system/admin_update_spec.rb +++ b/spec/system/admin_update_spec.rb @@ -5,16 +5,42 @@ RSpec.describe "Admin update" do fab!(:admin) - before { sign_in(admin) } + before do + sign_in(admin) + + # Avoid running `git` for every repo on every request + DockerManager::GitRepo + .any_instance + .stubs(:latest_origin_commit) + .returns("a" * 40) + DockerManager::GitRepo + .any_instance + .stubs(:latest_origin_tag_version) + .returns(nil) + DockerManager::GitRepo.any_instance.stubs(:commits_behind).returns(0) + DockerManager::GitRepo + .any_instance + .stubs(:latest_origin_commit_date) + .returns(Time.current) + end it "displays the admin update page with the right repositories" do visit("/admin/update") - expect(page).to have_css("h1", exact_text: I18n.t("js.admin.docker.update_title")) - expect(page).to have_css("tr.repo .d-table__overview-name", exact_text: "Discourse") - expect(page).to have_css("tr.repo .d-table__overview-name", text: /\ADocker[ _]manager\z/) expect(page).to have_css( - "tr.repo .d-table__overview-about a[href='https://meta.discourse.org/t/12655']", + "h1", + exact_text: I18n.t("js.admin.docker.update_title") + ) + expect(page).to have_css( + "tr.repo .d-table__overview-name", + exact_text: "Discourse" + ) + expect(page).to have_css( + "tr.repo .d-table__overview-name", + text: /\ADocker[ _]manager\z/ + ) + expect(page).to have_css( + "tr.repo .d-table__overview-about a[href='https://meta.discourse.org/t/12655']" ) end end From 00693f8f5891832e6c473a1924595756701ee3bb Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Thu, 30 Apr 2026 01:06:26 +0200 Subject: [PATCH 2/2] lint --- spec/system/admin_update_spec.rb | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/spec/system/admin_update_spec.rb b/spec/system/admin_update_spec.rb index 03c1b67..4be8e3d 100644 --- a/spec/system/admin_update_spec.rb +++ b/spec/system/admin_update_spec.rb @@ -9,38 +9,20 @@ sign_in(admin) # Avoid running `git` for every repo on every request - DockerManager::GitRepo - .any_instance - .stubs(:latest_origin_commit) - .returns("a" * 40) - DockerManager::GitRepo - .any_instance - .stubs(:latest_origin_tag_version) - .returns(nil) + DockerManager::GitRepo.any_instance.stubs(:latest_origin_commit).returns("a" * 40) + DockerManager::GitRepo.any_instance.stubs(:latest_origin_tag_version).returns(nil) DockerManager::GitRepo.any_instance.stubs(:commits_behind).returns(0) - DockerManager::GitRepo - .any_instance - .stubs(:latest_origin_commit_date) - .returns(Time.current) + DockerManager::GitRepo.any_instance.stubs(:latest_origin_commit_date).returns(Time.current) end it "displays the admin update page with the right repositories" do visit("/admin/update") + expect(page).to have_css("h1", exact_text: I18n.t("js.admin.docker.update_title")) + expect(page).to have_css("tr.repo .d-table__overview-name", exact_text: "Discourse") + expect(page).to have_css("tr.repo .d-table__overview-name", text: /\ADocker[ _]manager\z/) expect(page).to have_css( - "h1", - exact_text: I18n.t("js.admin.docker.update_title") - ) - expect(page).to have_css( - "tr.repo .d-table__overview-name", - exact_text: "Discourse" - ) - expect(page).to have_css( - "tr.repo .d-table__overview-name", - text: /\ADocker[ _]manager\z/ - ) - expect(page).to have_css( - "tr.repo .d-table__overview-about a[href='https://meta.discourse.org/t/12655']" + "tr.repo .d-table__overview-about a[href='https://meta.discourse.org/t/12655']", ) end end