diff --git a/.gitignore b/.gitignore
index e90e9bbe69246112414a77f06ffaea33fab7ea3d..ca45b64151dc6fa4c20fe9bd7b974a07055028f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,7 +8,7 @@ dev.db*
 dist
 dist-babel
 node_modules
-coverage
+coverage/
 yarn-error.log
 web/public/mockServiceWorker.js
 web/types/graphql.d.ts
diff --git a/web/jest.config.js b/web/jest.config.js
index 0e54869ebdcb3a59641a123c482e8e42300660a7..b5afafd064c6d6dbae153812aa9ae69accaaeb2f 100644
--- a/web/jest.config.js
+++ b/web/jest.config.js
@@ -3,6 +3,7 @@
 const config = {
   rootDir: '../',
   preset: '@redwoodjs/testing/config/jest/web',
+  coveragePathIgnorePatterns: ['<rootDir>/web/src/.*\\.stories\\.[jt]sx?$'],
 }
 
 module.exports = config
diff --git a/web/package.json b/web/package.json
index 55c8864dfc1ce83e31e4983021cb9fb541eefcf0..b54fce17e31c383c59712cdc59e2df0b11873da7 100644
--- a/web/package.json
+++ b/web/package.json
@@ -31,6 +31,7 @@
   "scripts": {
     "start": "rw dev",
     "test": "rw test a",
+    "test:watch": "rw test --watch",
     "test-coverage": "rw test a --no-watch --collect-coverage",
     "storybook": "rw storybook"
   }