create-react-starter-kit 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +0 -66
  2. package/dist/generator/dependencies.d.ts.map +1 -1
  3. package/dist/generator/dependencies.js +20 -2
  4. package/dist/generator/dependencies.js.map +1 -1
  5. package/dist/generator/index.d.ts.map +1 -1
  6. package/dist/generator/index.js +10 -2
  7. package/dist/generator/index.js.map +1 -1
  8. package/dist/templates/README.md.ejs +23 -29
  9. package/dist/templates/__when_e2eTesting_playwright__/playwright.config.ts.ejs +17 -1
  10. package/dist/templates/__when_e2eTesting_playwright__/tests/e2e/counter.spec.ts.ejs +25 -0
  11. package/dist/templates/__when_e2eTesting_playwright__/tests/e2e/feedback.spec.ts.ejs +20 -0
  12. package/dist/templates/__when_e2eTesting_playwright__/tests/e2e/home.spec.ts.ejs +30 -3
  13. package/dist/templates/__when_e2eTesting_playwright__/tests/e2e/posts.spec.ts.ejs +17 -0
  14. package/dist/templates/__when_formatting_prettier__/.prettierignore +28 -0
  15. package/dist/templates/__when_linting_biome__/biome.json +12 -0
  16. package/dist/templates/__when_unitTesting_jest__/tests/App.test.tsx.ejs +10 -1
  17. package/dist/templates/__when_unitTesting_rtl__/tests/App.test.tsx.ejs +10 -1
  18. package/dist/templates/__when_unitTesting_vitest__/tests/counter.test.tsx.ejs +36 -0
  19. package/dist/templates/__when_unitTesting_vitest__/tests/feedback.test.tsx.ejs +49 -0
  20. package/dist/templates/__when_unitTesting_vitest__/tests/pages.test.tsx.ejs +26 -0
  21. package/dist/templates/__when_unitTesting_vitest__/tests/posts.test.tsx.ejs +58 -0
  22. package/dist/templates/__when_unitTesting_vitest__/tests/test-utils.tsx.ejs +50 -0
  23. package/dist/templates/__when_visualTesting_storybook__/.storybook/main.js.ejs +4 -1
  24. package/dist/templates/__when_visualTesting_storybook__/.storybook/preview.js.ejs +40 -0
  25. package/dist/templates/__when_visualTesting_storybook__/.storybook/preview.tsx.ejs +40 -0
  26. package/dist/templates/__when_visualTesting_storybook__/src/components/StackBadge.stories.tsx.ejs +35 -0
  27. package/dist/templates/__when_visualTesting_storybook__/src/components/ui/UiButton.stories.tsx.ejs +24 -1
  28. package/dist/templates/__when_visualTesting_storybook__/src/features/counter/CounterPanel.stories.tsx.ejs +25 -0
  29. package/dist/templates/__when_visualTesting_storybook__/src/features/feedback/FeedbackForm.stories.tsx.ejs +25 -0
  30. package/dist/templates/__when_visualTesting_storybook__/src/features/posts/PostsPanel.stories.tsx.ejs +25 -0
  31. package/dist/templates/__when_visualTesting_storybook__/src/routes/Pages.stories.tsx.ejs +42 -0
  32. package/dist/templates/docs/architecture.md.ejs +32 -34
  33. package/dist/templates/docs/getting-started.md.ejs +1 -1
  34. package/{templates/src/app → dist/templates/src}/App.tsx.ejs +34 -1
  35. package/dist/templates/src/components/layout/AppLayout.tsx.ejs +35 -12
  36. package/dist/templates/src/features/counter/CounterPanel.tsx.ejs +12 -6
  37. package/dist/templates/src/features/feedback/FeedbackForm.tsx.ejs +26 -7
  38. package/dist/templates/src/main.tsx.ejs +2 -2
  39. package/{templates/src/app → dist/templates/src}/providers.tsx.ejs +1 -2
  40. package/dist/templates/src/routes/AboutPage.tsx.ejs +11 -10
  41. package/dist/templates/src/routes/CounterPage.tsx.ejs +17 -0
  42. package/dist/templates/src/routes/FeedbackPage.tsx.ejs +21 -0
  43. package/dist/templates/src/routes/HomePage.tsx.ejs +43 -21
  44. package/dist/templates/src/routes/PostsPage.tsx.ejs +17 -0
  45. package/dist/templates/src/styles/global.css.ejs +14 -33
  46. package/package.json +1 -1
  47. package/templates/README.md.ejs +23 -29
  48. package/templates/__when_e2eTesting_playwright__/playwright.config.ts.ejs +17 -1
  49. package/templates/__when_e2eTesting_playwright__/tests/e2e/counter.spec.ts.ejs +25 -0
  50. package/templates/__when_e2eTesting_playwright__/tests/e2e/feedback.spec.ts.ejs +20 -0
  51. package/templates/__when_e2eTesting_playwright__/tests/e2e/home.spec.ts.ejs +30 -3
  52. package/templates/__when_e2eTesting_playwright__/tests/e2e/posts.spec.ts.ejs +17 -0
  53. package/templates/__when_formatting_prettier__/.prettierignore +28 -0
  54. package/templates/__when_linting_biome__/biome.json +12 -0
  55. package/templates/__when_unitTesting_jest__/tests/App.test.tsx.ejs +10 -1
  56. package/templates/__when_unitTesting_rtl__/tests/App.test.tsx.ejs +10 -1
  57. package/templates/__when_unitTesting_vitest__/tests/counter.test.tsx.ejs +36 -0
  58. package/templates/__when_unitTesting_vitest__/tests/feedback.test.tsx.ejs +49 -0
  59. package/templates/__when_unitTesting_vitest__/tests/pages.test.tsx.ejs +26 -0
  60. package/templates/__when_unitTesting_vitest__/tests/posts.test.tsx.ejs +58 -0
  61. package/templates/__when_unitTesting_vitest__/tests/test-utils.tsx.ejs +50 -0
  62. package/templates/__when_visualTesting_storybook__/.storybook/main.js.ejs +4 -1
  63. package/templates/__when_visualTesting_storybook__/.storybook/preview.js.ejs +40 -0
  64. package/templates/__when_visualTesting_storybook__/.storybook/preview.tsx.ejs +40 -0
  65. package/templates/__when_visualTesting_storybook__/src/components/StackBadge.stories.tsx.ejs +35 -0
  66. package/templates/__when_visualTesting_storybook__/src/components/ui/UiButton.stories.tsx.ejs +24 -1
  67. package/templates/__when_visualTesting_storybook__/src/features/counter/CounterPanel.stories.tsx.ejs +25 -0
  68. package/templates/__when_visualTesting_storybook__/src/features/feedback/FeedbackForm.stories.tsx.ejs +25 -0
  69. package/templates/__when_visualTesting_storybook__/src/features/posts/PostsPanel.stories.tsx.ejs +25 -0
  70. package/templates/__when_visualTesting_storybook__/src/routes/Pages.stories.tsx.ejs +42 -0
  71. package/templates/docs/architecture.md.ejs +32 -34
  72. package/templates/docs/getting-started.md.ejs +1 -1
  73. package/{dist/templates/src/app → templates/src}/App.tsx.ejs +34 -1
  74. package/templates/src/components/layout/AppLayout.tsx.ejs +35 -12
  75. package/templates/src/features/counter/CounterPanel.tsx.ejs +12 -6
  76. package/templates/src/features/feedback/FeedbackForm.tsx.ejs +26 -7
  77. package/templates/src/main.tsx.ejs +2 -2
  78. package/{dist/templates/src/app → templates/src}/providers.tsx.ejs +1 -2
  79. package/templates/src/routes/AboutPage.tsx.ejs +11 -10
  80. package/templates/src/routes/CounterPage.tsx.ejs +17 -0
  81. package/templates/src/routes/FeedbackPage.tsx.ejs +21 -0
  82. package/templates/src/routes/HomePage.tsx.ejs +43 -21
  83. package/templates/src/routes/PostsPage.tsx.ejs +17 -0
  84. package/templates/src/styles/global.css.ejs +14 -33
  85. package/dist/templates/__when_unitTesting_vitest__/tests/App.test.tsx.ejs +0 -16
  86. package/dist/templates/__when_visualTesting_storybook__/.storybook/preview.js +0 -8
  87. package/dist/templates/src/components/ui/Toast.tsx.ejs +0 -61
  88. package/templates/__when_unitTesting_vitest__/tests/App.test.tsx.ejs +0 -16
  89. package/templates/__when_visualTesting_storybook__/.storybook/preview.js +0 -8
  90. package/templates/src/components/ui/Toast.tsx.ejs +0 -61
package/README.md CHANGED
@@ -48,72 +48,6 @@ create-react-starter-kit -y --name my-app --dir ./apps/my-app --skip-install
48
48
  - Feature-based `src/` layout + `@/` path aliases (tsconfig + bundler)
49
49
  - `README.md` tailored to the selected stack
50
50
 
51
- ## Develop this package
52
-
53
- ```bash
54
- git clone <repo>
55
- cd create-react-starter-kit
56
- npm install
57
- npm run build
58
- npm start
59
- # or
60
- node bin/create-react-starter-kit.js --defaults --name demo --dir ./tmp-generated/demo --skip-install
61
- ```
62
-
63
- ### Scripts
64
-
65
- | Script | Purpose |
66
- |--------|---------|
67
- | `npm run build` | Compile TypeScript and copy templates |
68
- | `npm start` | Run the CLI |
69
- | `npm run validate` | Build + generate a sample project under `tmp-generated/` |
70
- | `npm run typecheck` | Typecheck without emit |
71
-
72
- ### Local validation before publish
73
-
74
- ```bash
75
- npm run validate
76
- ```
77
-
78
- This generates `tmp-generated/validation-app` with default stack options and asserts key files exist. Optionally install and run that app:
79
-
80
- ```bash
81
- cd tmp-generated/validation-app
82
- pnpm install
83
- pnpm dev
84
- ```
85
-
86
- ## Package layout
87
-
88
- ```text
89
- bin/ CLI entry
90
- src/ TypeScript source (prompts, generator, utils)
91
- templates/ EJS templates for generated apps
92
- scripts/ copy-templates + validate-cli
93
- dist/ Compiled output (published)
94
- ```
95
-
96
- Templates use `__when_<key>_<value>__/` folders and EJS conditionals so only matching configs and examples are emitted.
97
-
98
- ## Publishing to npm
99
-
100
- 1. Update `version` in `package.json` (semver).
101
- 2. Run `npm run validate` and smoke-test a generated app.
102
- 3. Ensure you are logged in: `npm login`
103
- 4. Publish:
104
-
105
- ```bash
106
- npm publish --access public
107
- ```
108
-
109
- 5. Verify:
110
-
111
- ```bash
112
- npx create-react-starter-kit@latest --help
113
- ```
114
-
115
- See [docs/PUBLISHING.md](docs/PUBLISHING.md) for a fuller checklist.
116
-
117
51
  ## License
118
52
 
119
53
  MIT
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/generator/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAOD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CA+R3E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkF5E"}
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/generator/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAOD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAgS3E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoG5E"}
@@ -212,6 +212,7 @@ export function resolveDependencies(answers) {
212
212
  case 'storybook':
213
213
  devDependencies['storybook'] = '^8.6.4';
214
214
  devDependencies['@storybook/react'] = '^8.6.4';
215
+ devDependencies['@storybook/addon-essentials'] = '^8.6.4';
215
216
  if (answers.buildTool === 'vite' || answers.buildTool === 'esbuild') {
216
217
  devDependencies['@storybook/react-vite'] = '^8.6.4';
217
218
  }
@@ -316,10 +317,25 @@ export function buildScripts(answers) {
316
317
  scripts['lint:fix'] = 'biome check --write .';
317
318
  }
318
319
  if (answers.formatting === 'prettier') {
319
- scripts.format = 'prettier --write .';
320
+ const srcExt = answers.language === 'typescript' ? 'ts,tsx' : 'js,jsx';
321
+ const prettierGlobs = [
322
+ `"src/**/*.{${srcExt},css,scss,md,json}"`,
323
+ `"tests/**/*.{${srcExt}}"`,
324
+ '"docs/**/*.md"',
325
+ '"*.{json,md,cjs,mjs,ts,js}"',
326
+ ];
327
+ if (answers.visualTesting === 'storybook') {
328
+ prettierGlobs.push('".storybook/**/*.{js,cjs,mjs,ts,tsx}"');
329
+ }
330
+ if (answers.e2eTesting === 'cypress') {
331
+ prettierGlobs.push(`"cypress/**/*.{${srcExt}}"`);
332
+ }
333
+ const joined = prettierGlobs.join(' ');
334
+ scripts.format = `prettier --write ${joined}`;
335
+ scripts['format:check'] = `prettier --check ${joined}`;
320
336
  }
321
337
  else {
322
- scripts.format = 'stylelint "**/*.{css,scss}" --fix';
338
+ scripts.format = 'stylelint "src/**/*.{css,scss}" --fix';
323
339
  }
324
340
  switch (answers.unitTesting) {
325
341
  case 'vitest':
@@ -336,6 +352,8 @@ export function buildScripts(answers) {
336
352
  }
337
353
  if (answers.e2eTesting === 'playwright') {
338
354
  scripts['test:e2e'] = 'playwright test';
355
+ scripts['test:e2e:ui'] = 'playwright test --ui';
356
+ scripts['test:e2e:install'] = 'playwright install chromium';
339
357
  }
340
358
  else if (answers.e2eTesting === 'cypress') {
341
359
  scripts['test:e2e'] = 'cypress run';
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/generator/dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/generator/dependencies.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAoInE,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuB9E;AAwGD,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAwI5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAoB1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAoInE,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuB9E;AAwGD,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAwJ5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAoB1D"}
@@ -283,18 +283,26 @@ export async function generateProject(answers) {
283
283
  };
284
284
  }
285
285
  pkg['lint-staged'] = {
286
- [`*.{${answers.language === 'typescript' ? 'ts,tsx' : 'js,jsx'},css,md,json}`]: answers.formatting === 'prettier'
286
+ [`src/**/*.{${answers.language === 'typescript' ? 'ts,tsx' : 'js,jsx'},css,scss,md,json}`]: answers.formatting === 'prettier'
287
287
  ? ['prettier --write']
288
288
  : answers.linting === 'biome'
289
289
  ? ['biome check --write']
290
290
  : ['eslint --fix'],
291
+ [`tests/**/*.{${answers.language === 'typescript' ? 'ts,tsx' : 'js,jsx'}}`]: answers.formatting === 'prettier'
292
+ ? ['prettier --write']
293
+ : answers.linting === 'biome'
294
+ ? ['biome check --write']
295
+ : ['eslint --fix'],
296
+ 'docs/**/*.md': answers.formatting === 'prettier' ? ['prettier --write'] : [],
297
+ '*.{json,md}': answers.formatting === 'prettier' ? ['prettier --write'] : [],
291
298
  };
299
+ // Drop empty lint-staged entries
300
+ pkg['lint-staged'] = Object.fromEntries(Object.entries(pkg['lint-staged']).filter(([, cmds]) => cmds.length > 0));
292
301
  await fs.writeJson(path.join(answers.targetDir, 'package.json'), pkg, {
293
302
  spaces: 2,
294
303
  });
295
304
  // Scalable feature-based layout used across large production React apps
296
305
  const dirs = [
297
- 'src/app',
298
306
  'src/assets',
299
307
  'src/components/layout',
300
308
  'src/components/ui',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"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"}
@@ -74,21 +74,23 @@ Open the URL printed in the terminal (typically `http://localhost:5173`).
74
74
 
75
75
  ```text
76
76
  src/
77
- app/ # App shell, providers, bootstrap
78
- assets/ # Images / media imported from code
79
- components/ # Shared UI (layout/, ui/)
80
- config/ # Env helpers / app config
81
- features/ # Domain modules (scalable default)
82
- hooks/ # Shared hooks
83
- lib/ # Third-party wrappers / helpers
84
- routes/ # Route-level pages
85
- store/ # Client state
86
- services/ # API clients
87
- styles/ # Global styles
88
- types/ # Shared types
89
- utils/ # Pure helpers
90
- docs/ # Architecture & usage docs
91
- tests/ # Extra test helpers / e2e
77
+ App.tsx # Route tree
78
+ main.tsx # Bootstrap / render
79
+ providers.tsx # App-wide providers
80
+ assets/ # Images / media imported from code
81
+ components/ # Shared UI (layout/, ui/)
82
+ config/ # Env helpers / app config
83
+ features/ # Domain modules (scalable default)
84
+ hooks/ # Shared hooks
85
+ lib/ # Third-party wrappers / helpers
86
+ routes/ # Route-level pages
87
+ store/ # Client state
88
+ services/ # API clients
89
+ styles/ # Global styles
90
+ types/ # Shared types
91
+ utils/ # Pure helpers
92
+ docs/ # Architecture & usage docs
93
+ tests/ # Unit + e2e helpers
92
94
  ```
93
95
 
94
96
  Organization: **feature-based / domain-driven** with `@/` path aliases. See `docs/architecture.md`.
@@ -123,21 +125,13 @@ Start with `docs/selected-stack.md` and `docs/getting-started.md`.
123
125
 
124
126
  ## Example usage
125
127
 
126
- The demo page (`/`) shows:
128
+ The demo pages include:
127
129
 
128
- - navigation + layout
129
- <% if (stateManagement !== 'none') { -%>
130
- - client state (<%= stackLabels.stateManagement %>)
131
- <% } -%>
132
- <% if (serverState !== 'none') { -%>
133
- - data fetching (<%= stackLabels.serverState %>)
134
- <% } -%>
135
- <% if (forms !== 'none') { -%>
136
- - forms (<%= stackLabels.forms %>)
137
- <% } -%>
138
- <% if (validation !== 'none') { -%>
139
- - validation (<%= stackLabels.validation %>)
140
- <% } -%>
130
+ - `/` — overview + links to demos
131
+ - `/counter` — client state (<%= stackLabels.stateManagement %>)
132
+ - `/posts` data fetching (<%= stackLabels.serverState %>)
133
+ - `/feedback` — forms<% if (validation !== 'none') { %> + validation (<%= stackLabels.forms %><% if (validation !== 'none') { %> / <%= stackLabels.validation %><% } %>)<% } else { %> (<%= stackLabels.forms %>)<% } %>
134
+ - `/about` starter orientation
141
135
  - styling (<%= stackLabels.styling %>)
142
136
  <% if (uiLibrary !== 'none') { -%>
143
137
  - UI primitives (<%= stackLabels.uiLibrary %>)
@@ -1,16 +1,32 @@
1
1
  import { defineConfig, devices } from '@playwright/test';
2
2
 
3
+ /**
4
+ * Run once before first e2e: `<%= packageManager === 'npm' ? 'npm run' : packageManager %> test:e2e:install`
5
+ */
3
6
  export default defineConfig({
4
7
  testDir: './tests/e2e',
5
8
  fullyParallel: true,
9
+ forbidOnly: !!process.env.CI,
10
+ retries: process.env.CI ? 1 : 0,
11
+ reporter: process.env.CI ? 'github' : 'list',
6
12
  use: {
7
13
  baseURL: 'http://127.0.0.1:5173',
8
14
  trace: 'on-first-retry',
15
+ screenshot: 'only-on-failure',
9
16
  },
10
17
  webServer: {
11
- command: '<%= packageManager === 'npm' ? 'npm run dev' : packageManager + ' dev' %>',
18
+ // Prefer the local binary so e2e works even if a global package manager is missing.
19
+ command:
20
+ '<%= buildTool === 'vite'
21
+ ? 'npx vite --host 127.0.0.1 --port 5173'
22
+ : packageManager === 'npm'
23
+ ? 'npm run dev -- --host 127.0.0.1 --port 5173'
24
+ : packageManager === 'yarn'
25
+ ? 'yarn dev --host 127.0.0.1 --port 5173'
26
+ : 'pnpm exec vite --host 127.0.0.1 --port 5173' %>',
12
27
  url: 'http://127.0.0.1:5173',
13
28
  reuseExistingServer: !process.env.CI,
29
+ timeout: 120_000,
14
30
  },
15
31
  projects: [{ name: 'chromium', use: { ...devices['Desktop Chrome'] } }],
16
32
  });
@@ -0,0 +1,25 @@
1
+ import { test, expect } from '@playwright/test';
2
+
3
+ test.describe('Counter page', () => {
4
+ <% if (stateManagement === 'none') { -%>
5
+ test('shows empty-state message when no state library is selected', async ({ page }) => {
6
+ await page.goto('/counter');
7
+ await expect(page.getByText(/Client state library was set to None/i)).toBeVisible();
8
+ });
9
+ <% } else { -%>
10
+ test('increments and decrements the counter', async ({ page }) => {
11
+ await page.goto('/counter');
12
+ const value = page.getByTestId('counter-value');
13
+ await expect(value).toHaveText('0');
14
+
15
+ await page.getByRole('button', { name: 'Increment' }).click();
16
+ await expect(value).toHaveText('1');
17
+
18
+ await page.getByRole('button', { name: 'Increment' }).click();
19
+ await expect(value).toHaveText('2');
20
+
21
+ await page.getByRole('button', { name: 'Decrement' }).click();
22
+ await expect(value).toHaveText('1');
23
+ });
24
+ <% } -%>
25
+ });
@@ -0,0 +1,20 @@
1
+ import { test, expect } from '@playwright/test';
2
+
3
+ test.describe('Feedback page', () => {
4
+ test('shows validation errors for empty submit', async ({ page }) => {
5
+ await page.goto('/feedback');
6
+ await page.getByRole('button', { name: /Send feedback/i }).click();
7
+ await expect(page.locator('.field-error').first()).toBeVisible({ timeout: 5_000 });
8
+ });
9
+
10
+ test('submits valid feedback', async ({ page }) => {
11
+ await page.goto('/feedback');
12
+ await page.getByPlaceholder('Ada Lovelace').fill('Ada Lovelace');
13
+ await page.getByPlaceholder('ada@example.com').fill('ada@example.com');
14
+ await page.getByPlaceholder('What should we improve?').fill('Please add more examples for routing.');
15
+ await page.getByRole('button', { name: /Send feedback/i }).click();
16
+ await expect(page.getByRole('status')).toContainText(/submitted successfully/i, {
17
+ timeout: 15_000,
18
+ });
19
+ });
20
+ });
@@ -1,6 +1,33 @@
1
1
  import { test, expect } from '@playwright/test';
2
2
 
3
- test('home page loads', async ({ page }) => {
4
- await page.goto('/');
5
- await expect(page.getByRole('heading', { name: /<%= projectName %>/i })).toBeVisible();
3
+ test.describe('Home', () => {
4
+ test('loads hero and demo links', async ({ page }) => {
5
+ await page.goto('/');
6
+ await expect(page.getByRole('heading', { name: /<%= projectName %>/i })).toBeVisible();
7
+ await expect(page.getByRole('navigation', { name: 'Primary' })).toBeVisible();
8
+ await expect(page.getByRole('link', { name: /Go to counter/i })).toBeVisible();
9
+ await expect(page.getByRole('link', { name: /Go to posts/i })).toBeVisible();
10
+ await expect(page.getByRole('link', { name: /Go to feedback/i })).toBeVisible();
11
+ });
12
+ });
13
+
14
+ test.describe('Navigation', () => {
15
+ test('can visit each primary route', async ({ page }) => {
16
+ await page.goto('/');
17
+ await page.getByRole('link', { name: 'Counter', exact: true }).click();
18
+ await expect(page).toHaveURL(/\/counter/);
19
+ await expect(page.getByRole('heading', { name: 'Counter' })).toBeVisible();
20
+
21
+ await page.getByRole('link', { name: 'Posts', exact: true }).click();
22
+ await expect(page).toHaveURL(/\/posts/);
23
+ await expect(page.getByRole('heading', { name: 'Posts' })).toBeVisible();
24
+
25
+ await page.getByRole('link', { name: 'Feedback', exact: true }).click();
26
+ await expect(page).toHaveURL(/\/feedback/);
27
+ await expect(page.getByRole('heading', { name: 'Feedback' })).toBeVisible();
28
+
29
+ await page.getByRole('link', { name: 'About', exact: true }).click();
30
+ await expect(page).toHaveURL(/\/about/);
31
+ await expect(page.getByRole('heading', { name: /About/i })).toBeVisible();
32
+ });
6
33
  });
@@ -0,0 +1,17 @@
1
+ import { test, expect } from '@playwright/test';
2
+
3
+ test.describe('Posts page', () => {
4
+ test('loads posts from the demo API', async ({ page }) => {
5
+ await page.goto('/posts');
6
+ await expect(page.getByRole('heading', { name: 'Posts' })).toBeVisible();
7
+ await expect(page.getByRole('list')).toBeVisible({ timeout: 15_000 });
8
+ await expect(page.getByRole('listitem').first()).toBeVisible();
9
+ });
10
+
11
+ test('refresh button reloads posts', async ({ page }) => {
12
+ await page.goto('/posts');
13
+ await expect(page.getByRole('listitem').first()).toBeVisible({ timeout: 15_000 });
14
+ await page.getByRole('button', { name: /Refresh/i }).click();
15
+ await expect(page.getByRole('listitem').first()).toBeVisible({ timeout: 15_000 });
16
+ });
17
+ });
@@ -0,0 +1,28 @@
1
+ # Dependencies
2
+ node_modules/
3
+
4
+ # Build outputs
5
+ dist/
6
+ build/
7
+ out/
8
+ .cache/
9
+ .parcel-cache/
10
+ .rspack-profile-*/
11
+ storybook-static/
12
+ coverage/
13
+ playwright-report/
14
+ test-results/
15
+ cypress/videos/
16
+ cypress/screenshots/
17
+
18
+ # Generated / lockfiles
19
+ package-lock.json
20
+ pnpm-lock.yaml
21
+ yarn.lock
22
+ *.tgz
23
+ *.tsbuildinfo
24
+
25
+ # Env / misc
26
+ .env
27
+ .env.*
28
+ public/
@@ -1,5 +1,17 @@
1
1
  {
2
2
  "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
3
+ "files": {
4
+ "ignore": [
5
+ "node_modules",
6
+ "dist",
7
+ "build",
8
+ "coverage",
9
+ "storybook-static",
10
+ ".parcel-cache",
11
+ "playwright-report",
12
+ "test-results"
13
+ ]
14
+ },
3
15
  "organizeImports": { "enabled": true },
4
16
  "linter": {
5
17
  "enabled": true,
@@ -1,11 +1,20 @@
1
1
  import { render, screen } from '@testing-library/react';
2
- import { AppProviders } from '@/app/providers';
2
+ <% if (router === 'react-router') { -%>
3
+ import { MemoryRouter } from 'react-router-dom';
4
+ <% } -%>
5
+ import { AppProviders } from '@/providers';
3
6
  import { HomePage } from '@/routes/HomePage';
4
7
 
5
8
  test('renders the project hero', () => {
6
9
  render(
7
10
  <AppProviders>
11
+ <% if (router === 'react-router') { -%>
12
+ <MemoryRouter>
13
+ <HomePage />
14
+ </MemoryRouter>
15
+ <% } else { -%>
8
16
  <HomePage />
17
+ <% } -%>
9
18
  </AppProviders>,
10
19
  );
11
20
 
@@ -1,11 +1,20 @@
1
1
  import { render, screen } from '@testing-library/react';
2
- import { AppProviders } from '@/app/providers';
2
+ <% if (router === 'react-router') { -%>
3
+ import { MemoryRouter } from 'react-router-dom';
4
+ <% } -%>
5
+ import { AppProviders } from '@/providers';
3
6
  import { HomePage } from '@/routes/HomePage';
4
7
 
5
8
  test('renders the project hero', () => {
6
9
  render(
7
10
  <AppProviders>
11
+ <% if (router === 'react-router') { -%>
12
+ <MemoryRouter>
13
+ <HomePage />
14
+ </MemoryRouter>
15
+ <% } else { -%>
8
16
  <HomePage />
17
+ <% } -%>
9
18
  </AppProviders>,
10
19
  );
11
20
 
@@ -0,0 +1,36 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { screen } from '@testing-library/react';
3
+ import userEvent from '@testing-library/user-event';
4
+ import { CounterPanel } from '@/features/counter/CounterPanel';
5
+ import { renderWithProviders } from './test-utils';
6
+
7
+ describe('CounterPanel', () => {
8
+ <% if (stateManagement === 'none') { -%>
9
+ it('shows guidance when no state library is selected', () => {
10
+ renderWithProviders(<CounterPanel />);
11
+ expect(screen.getByText(/Client state library was set to None/i)).toBeInTheDocument();
12
+ });
13
+ <% } else { -%>
14
+ it('starts at 0 and updates when increment/decrement are clicked', async () => {
15
+ const user = userEvent.setup();
16
+ renderWithProviders(<CounterPanel />);
17
+
18
+ expect(screen.getByTestId('counter-value')).toHaveTextContent('0');
19
+
20
+ await user.click(screen.getByRole('button', { name: 'Increment' }));
21
+ expect(screen.getByTestId('counter-value')).toHaveTextContent('1');
22
+
23
+ await user.click(screen.getByRole('button', { name: 'Increment' }));
24
+ expect(screen.getByTestId('counter-value')).toHaveTextContent('2');
25
+
26
+ await user.click(screen.getByRole('button', { name: 'Decrement' }));
27
+ expect(screen.getByTestId('counter-value')).toHaveTextContent('1');
28
+ });
29
+
30
+ it('exposes accessible button labels', () => {
31
+ renderWithProviders(<CounterPanel />);
32
+ expect(screen.getByRole('button', { name: 'Increment' })).toBeInTheDocument();
33
+ expect(screen.getByRole('button', { name: 'Decrement' })).toBeInTheDocument();
34
+ });
35
+ <% } -%>
36
+ });