mirror of
https://github.com/we-promise/sure.git
synced 2026-04-07 14:31:25 +00:00
* Add friendly PWA offline error page When the PWA fails to connect to the server, users now see a branded offline page with a friendly "technical difficulties" message, the app logo, and a reload button. The page automatically attempts to reload when connectivity is restored. Changes: - Created public/offline.html with branded offline experience - Updated service worker to cache and serve offline page on network failures - Added service worker registration in application.js - Service worker now handles navigation requests with offline fallback * Extract PWA offline logo to separate cached asset Move the inline SVG logo from offline.html to a separate file at public/logo-offline.svg. This makes the logo asset easily identifiable and maintainable, as it may diverge from other logo versions in the future. Changes: - Created public/logo-offline.svg with the offline page logo - Updated service worker to cache logo as part of OFFLINE_ASSETS array - Updated fetch handler to serve cached offline assets - Updated offline.html to reference logo file instead of inline SVG * Update offline message for better readability Signed-off-by: Juan José Mata <juanjo.mata@gmail.com> * CodeRabbit comments * Keep 40x and 50x flowing * Dark mode * Logo tweaks * Login/sign up cleanup --------- Signed-off-by: Juan José Mata <juanjo.mata@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>
42 lines
1.0 KiB
Ruby
42 lines
1.0 KiB
Ruby
require "test_helper"
|
|
|
|
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
|
|
setup do
|
|
Capybara.default_max_wait_time = 5
|
|
end
|
|
|
|
driven_by :selenium, using: ENV["CI"].present? ? :headless_chrome : ENV.fetch("E2E_BROWSER", :chrome).to_sym, screen_size: [ 1400, 1400 ]
|
|
|
|
private
|
|
|
|
def sign_in(user)
|
|
visit new_session_path
|
|
within %(form[action='#{sessions_path}']) do
|
|
fill_in "Email", with: user.email
|
|
fill_in "Password", with: user_password_test
|
|
click_on "Log in"
|
|
end
|
|
|
|
# Trigger Capybara's wait mechanism to avoid timing issues with logins
|
|
find("h1", text: "Welcome back, #{user.first_name}")
|
|
end
|
|
|
|
def login_as(user)
|
|
sign_in(user)
|
|
end
|
|
|
|
def sign_out
|
|
find("#user-menu").click
|
|
click_button "Logout"
|
|
|
|
# Trigger Capybara's wait mechanism to avoid timing issues with logout
|
|
find("a", text: "Sign in")
|
|
end
|
|
|
|
def within_testid(testid)
|
|
within "[data-testid='#{testid}']" do
|
|
yield
|
|
end
|
|
end
|
|
end
|