From 4c971213d01471efd4fdcc4e2790fbf9b7c2418d Mon Sep 17 00:00:00 2001 From: Caleb LeNoir Date: Thu, 12 Mar 2026 09:50:02 -0400 Subject: [PATCH 1/2] Add progressive web app (PWA) support Enable Draft to be installed as a standalone app with: - Web app manifest (manifest.json) with app metadata and icons - Service worker (sw.js) for offline functionality and caching - Offline fallback page for network errors - PWA icons (192x192, 512x512) in light and dark variants - Meta tags and apple-touch-icon for iOS home screen Co-Authored-By: Claude Haiku 4.5 --- app/views/layouts/application.html.erb | 8 +++++ app/views/layouts/devise.html.erb | 8 +++++ app/views/layouts/home.html.erb | 8 +++++ public/apple-touch-icon-precomposed.png | Bin 0 -> 7585 bytes public/apple-touch-icon.png | Bin 0 -> 7585 bytes public/icons/icon-192x192.png | Bin 0 -> 8097 bytes public/icons/icon-512x512.png | Bin 0 -> 28560 bytes public/icons/icon-dark-192x192.png | Bin 0 -> 8409 bytes public/icons/icon-dark-512x512.png | Bin 0 -> 29467 bytes public/manifest.json | 27 ++++++++++++++ public/offline.html | 32 +++++++++++++++++ public/sw.js | 45 ++++++++++++++++++++++++ 12 files changed, 128 insertions(+) create mode 100644 public/icons/icon-192x192.png create mode 100644 public/icons/icon-512x512.png create mode 100644 public/icons/icon-dark-192x192.png create mode 100644 public/icons/icon-dark-512x512.png create mode 100644 public/manifest.json create mode 100644 public/offline.html create mode 100644 public/sw.js diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index a2de7b7..79ce26f 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -6,11 +6,19 @@ <%= csrf_meta_tags %> <%= csp_meta_tag %> + + + <%= yield :meta %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbo-track': 'reload' %> <%= javascript_importmap_tags %> + diff --git a/app/views/layouts/devise.html.erb b/app/views/layouts/devise.html.erb index 39bc8e3..4d99238 100644 --- a/app/views/layouts/devise.html.erb +++ b/app/views/layouts/devise.html.erb @@ -6,10 +6,18 @@ <%= csrf_meta_tags %> <%= csp_meta_tag %> + + + <%= stylesheet_link_tag 'application', media: 'all', 'data-turbo-track': 'reload' %> <%= javascript_importmap_tags %> + diff --git a/app/views/layouts/home.html.erb b/app/views/layouts/home.html.erb index 2af0ca8..81e39d7 100644 --- a/app/views/layouts/home.html.erb +++ b/app/views/layouts/home.html.erb @@ -6,10 +6,18 @@ <%= csrf_meta_tags %> <%= csp_meta_tag %> + + + <%= stylesheet_link_tag 'application', media: 'all', 'data-turbo-track': 'reload' %> <%= javascript_importmap_tags %> + diff --git a/public/apple-touch-icon-precomposed.png b/public/apple-touch-icon-precomposed.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..75b97aada0a37fa8d22d53350bfdc9e3559cb587 100644 GIT binary patch literal 7585 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 literal 0 HcmV?d00001 diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..75b97aada0a37fa8d22d53350bfdc9e3559cb587 100644 GIT binary patch literal 7585 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 literal 0 HcmV?d00001 diff --git a/public/icons/icon-192x192.png b/public/icons/icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..c74857c152b6d6203fc8e3c6bba92cd00aedac36 GIT binary patch literal 8097 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 literal 0 HcmV?d00001 diff --git a/public/icons/icon-dark-192x192.png b/public/icons/icon-dark-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..f58310acf920369ce1aa0b375af35f3b9130350f GIT binary patch literal 8409 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 + + + + + Draft - Offline + + + +
+

You're offline

+

Check your connection and try again.

+
+ + diff --git a/public/sw.js b/public/sw.js new file mode 100644 index 0000000..c52dd9b --- /dev/null +++ b/public/sw.js @@ -0,0 +1,45 @@ +const CACHE_NAME = "draft-v1"; +const OFFLINE_URL = "/offline.html"; + +const PRECACHE_URLS = [ + "/offline.html" +]; + +self.addEventListener("install", (event) => { + event.waitUntil( + caches.open(CACHE_NAME).then((cache) => cache.addAll(PRECACHE_URLS)) + ); + self.skipWaiting(); +}); + +self.addEventListener("activate", (event) => { + event.waitUntil( + caches.keys().then((keys) => + Promise.all(keys.filter((key) => key !== CACHE_NAME).map((key) => caches.delete(key))) + ) + ); + self.clients.claim(); +}); + +self.addEventListener("fetch", (event) => { + if (event.request.mode === "navigate") { + event.respondWith( + fetch(event.request).catch(() => caches.match(OFFLINE_URL)) + ); + return; + } + + event.respondWith( + caches.match(event.request).then((cached) => { + if (cached) return cached; + return fetch(event.request).then((response) => { + if (!response || response.status !== 200 || response.type !== "basic") { + return response; + } + const toCache = response.clone(); + caches.open(CACHE_NAME).then((cache) => cache.put(event.request, toCache)); + return response; + }); + }) + ); +}); From c2d2b579b605b1f23307e868b404ead7d9d43f42 Mon Sep 17 00:00:00 2001 From: Caleb LeNoir Date: Thu, 12 Mar 2026 09:57:04 -0400 Subject: [PATCH 2/2] Add integration tests for PWA setup Co-Authored-By: Claude Opus 4.6 --- test/integration/pwa_test.rb | 48 ++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 test/integration/pwa_test.rb diff --git a/test/integration/pwa_test.rb b/test/integration/pwa_test.rb new file mode 100644 index 0000000..f487ab5 --- /dev/null +++ b/test/integration/pwa_test.rb @@ -0,0 +1,48 @@ +require 'test_helper' + +class PwaTest < ActionDispatch::IntegrationTest + include Devise::Test::IntegrationHelpers + + test 'manifest.json is served with correct content type' do + get '/manifest.json' + assert_response :success + manifest = JSON.parse(response.body) + assert_equal 'Draft', manifest['name'] + assert_equal 'standalone', manifest['display'] + assert manifest['icons'].any? { |icon| icon['sizes'] == '512x512' } + end + + test 'service worker is served' do + get '/sw.js' + assert_response :success + assert_includes response.body, 'CACHE_NAME' + end + + test 'offline page is served' do + get '/offline.html' + assert_response :success + assert_includes response.body, "You're offline" + end + + test 'home layout includes PWA tags' do + sign_in users(:bob) + get root_path + assert_response :success + + assert_select 'link[rel="manifest"][href="/manifest.json"]' + assert_select 'meta[name="theme-color"]' + assert_select 'link[rel="apple-touch-icon"]' + assert_includes response.body, 'navigator.serviceWorker.register' + end + + test 'application layout includes PWA tags' do + sign_in users(:bob) + get stories_path + assert_response :success + + assert_select 'link[rel="manifest"][href="/manifest.json"]' + assert_select 'meta[name="theme-color"]' + assert_select 'link[rel="apple-touch-icon"]' + assert_includes response.body, 'navigator.serviceWorker.register' + end +end