# Testing PWAs — Progressive Web Apps

Source: https://www.geekswithgeeks.com/en/pwa/pwa-testing

> Test service workers, offline functionality, and installation flow.

## Testing strategies

Test PWAs across: offline behavior, service worker updates, caching correctness, installation on real devices, and accessibility. Use Chrome DevTools, Lighthouse, and manual testing.

## Unit test service worker

Test service worker with Jest or Vitest.

```javascript
describe('Service Worker', () => {
  it('should cache on install', async () => {
    const cache = await caches.open('v1');
    await cache.add('/index.html');
    const cached = await cache.match('/index.html');
    expect(cached).toBeDefined();
  });

  it('should serve from cache on fetch', async () => {
    // Mock fetch event
    const response = await cache.match('/index.html');
    expect(response).toBeDefined();
  });
});
```

Output:

```
Service worker caching and fetch behavior verified through tests.
```

## A common trap

Always test on real devices and real network conditions. Simulator throttling and localhost testing miss real-world issues.
