mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 13:19:39 +02:00
Add zero-config self hosting on Render (#612)
* v1 of backend implementation for self hosting * Add docs * Add upgrades controller * Add global helpers for self hosting mode * Add self host settings controller * Conditionally show self hosting settings * Environment and config updates * Complete upgrade prompting flow * Update config for forked repo * Move configuration of github provider within class * Add upgrades cron * Update deploy button * Update guides * Fix render deployer * Typo * Enable auto upgrades * Fix cron * Make upgrade modes more clear and consistent * Trigger new available version * Fix logic for displaying upgrade prompts * Finish implementation * Fix regression * Trigger new version * Add i18n translations * trigger new version * reduce caching time for testing * Decrease cache for testing * trigger upgrade * trigger upgrade * Only trigger deploy once * trigger upgrade * If target is commit, always upgrade if any upgrade is available * trigger upgrade * trigger upgrade * Test release * Change back to maybe repo for defaults * Fix lint errors * Clearer naming * Fix relative link * Add abs path * Relative link * Update docs
This commit is contained in:
parent
2bbf120e2f
commit
5aca2ff9b6
53 changed files with 1356 additions and 111 deletions
83
test/controllers/upgrades_controller_test.rb
Normal file
83
test/controllers/upgrades_controller_test.rb
Normal file
|
@ -0,0 +1,83 @@
|
|||
require "test_helper"
|
||||
|
||||
class UpgradesControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
sign_in @user = users(:family_admin)
|
||||
|
||||
ENV["UPGRADES_ENABLED"] = "true"
|
||||
|
||||
@completed_upgrade = Upgrader::Upgrade.new(
|
||||
"commit",
|
||||
commit_sha: "47bb430954292d2fdcc81082af731a16b9587da3",
|
||||
version: Semver.new("0.0.0"),
|
||||
url: ""
|
||||
)
|
||||
|
||||
@completed_upgrade.stubs(:complete?).returns(true)
|
||||
@completed_upgrade.stubs(:available?).returns(false)
|
||||
|
||||
@available_upgrade = Upgrader::Upgrade.new(
|
||||
"commit",
|
||||
commit_sha: "47bb430954292d2fdcc81082af731a16b9587da4",
|
||||
version: Semver.new("0.1.0"),
|
||||
url: ""
|
||||
)
|
||||
|
||||
@available_upgrade.stubs(:available?).returns(true)
|
||||
@available_upgrade.stubs(:complete?).returns(false)
|
||||
end
|
||||
|
||||
test "controller not available when upgrades are disabled" do
|
||||
ENV["UPGRADES_ENABLED"] = "false"
|
||||
|
||||
post "/upgrades/acknowledge/47bb430954292d2fdcc81082af731a16b9587da3"
|
||||
assert_response :not_found
|
||||
|
||||
post "/upgrades/deploy/47bb430954292d2fdcc81082af731a16b9587da3"
|
||||
assert_response :not_found
|
||||
end
|
||||
|
||||
test "should acknowledge an upgrade prompt" do
|
||||
Upgrader.stubs(:find_upgrade).returns(@available_upgrade)
|
||||
|
||||
post acknowledge_upgrade_url(@available_upgrade.commit_sha)
|
||||
|
||||
@user.reload
|
||||
assert_equal @user.last_prompted_upgrade_commit_sha, @available_upgrade.commit_sha
|
||||
assert :redirect
|
||||
end
|
||||
|
||||
test "should acknowledge an upgrade alert" do
|
||||
Upgrader.stubs(:find_upgrade).returns(@completed_upgrade)
|
||||
|
||||
post acknowledge_upgrade_url(@completed_upgrade.commit_sha)
|
||||
|
||||
@user.reload
|
||||
assert_equal @user.last_alerted_upgrade_commit_sha, @completed_upgrade.commit_sha
|
||||
assert :redirect
|
||||
end
|
||||
|
||||
test "should deploy an upgrade" do
|
||||
Upgrader.stubs(:find_upgrade).returns(@available_upgrade)
|
||||
|
||||
post deploy_upgrade_path(@available_upgrade.commit_sha)
|
||||
|
||||
@user.reload
|
||||
assert_equal @user.last_prompted_upgrade_commit_sha, @available_upgrade.commit_sha
|
||||
assert :redirect
|
||||
end
|
||||
|
||||
test "should rollback user state if upgrade fails" do
|
||||
PRIOR_COMMIT = "47bb430954292d2fdcc81082af731a16b9587da2"
|
||||
@user.update!(last_prompted_upgrade_commit_sha: PRIOR_COMMIT)
|
||||
|
||||
Upgrader.stubs(:find_upgrade).returns(@available_upgrade)
|
||||
Upgrader.stubs(:upgrade_to).returns({ success: false })
|
||||
|
||||
post deploy_upgrade_path(@available_upgrade.commit_sha)
|
||||
|
||||
@user.reload
|
||||
assert_equal @user.last_prompted_upgrade_commit_sha, PRIOR_COMMIT
|
||||
assert :redirect
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue