2024-02-05 10:39:38 +11:00
|
|
|
require "test_helper"
|
|
|
|
|
|
|
|
class PagesControllerTest < ActionDispatch::IntegrationTest
|
|
|
|
setup do
|
2024-03-21 13:39:10 -04:00
|
|
|
sign_in @user = users(:family_admin)
|
2024-02-05 10:39:38 +11:00
|
|
|
end
|
|
|
|
|
|
|
|
test "dashboard" do
|
|
|
|
get root_path
|
|
|
|
assert_response :ok
|
|
|
|
end
|
2024-09-09 16:54:56 -04:00
|
|
|
|
|
|
|
test "changelog" do
|
|
|
|
VCR.use_cassette("git_repository_provider/fetch_latest_release_notes") do
|
|
|
|
get changelog_path
|
|
|
|
assert_response :ok
|
|
|
|
end
|
|
|
|
end
|
2025-05-26 19:53:25 -05:00
|
|
|
|
|
|
|
test "changelog with nil release notes" do
|
|
|
|
# Mock the GitHub provider to return nil (simulating API failure or no releases)
|
|
|
|
github_provider = mock
|
|
|
|
github_provider.expects(:fetch_latest_release_notes).returns(nil)
|
|
|
|
Provider::Registry.stubs(:get_provider).with(:github).returns(github_provider)
|
|
|
|
|
|
|
|
get changelog_path
|
|
|
|
assert_response :ok
|
|
|
|
assert_select "h2", text: "Release notes unavailable"
|
|
|
|
assert_select "a[href='https://github.com/maybe-finance/maybe/releases']"
|
|
|
|
end
|
|
|
|
|
|
|
|
test "changelog with incomplete release notes" do
|
|
|
|
# Mock the GitHub provider to return incomplete data (missing some fields)
|
|
|
|
github_provider = mock
|
|
|
|
incomplete_data = {
|
|
|
|
avatar: nil,
|
|
|
|
username: "maybe-finance",
|
|
|
|
name: "Test Release",
|
|
|
|
published_at: nil,
|
|
|
|
body: nil
|
|
|
|
}
|
|
|
|
github_provider.expects(:fetch_latest_release_notes).returns(incomplete_data)
|
|
|
|
Provider::Registry.stubs(:get_provider).with(:github).returns(github_provider)
|
|
|
|
|
|
|
|
get changelog_path
|
|
|
|
assert_response :ok
|
|
|
|
assert_select "h2", text: "Test Release"
|
|
|
|
# Should not crash even with nil values
|
|
|
|
end
|
2024-02-05 10:39:38 +11:00
|
|
|
end
|