Skip to content

Feat/benchmark config form - #37

Merged
amh1k merged 4 commits into
mainfrom
feat/benchmark-config-form
Oct 5, 2026
Merged

amh1k merged 4 commits into
mainfrom
feat/benchmark-config-form

Conversation

@amh1k

@amh1k amh1k commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator

Description

Adds the initial benchmark configuration form to the PostgreSQL instance detail tab.

The form displays the selected instance and namespace, provides editable pgbench settings, and validates configuration locally. Run submission and status handling remain separate follow-up work.

Changes

  • Added database, duration, clients, threads, scale, and initialization fields.
  • Added field-specific validation matching backend limits.
  • Added a warning when pgbench table initialization is enabled.
  • Kept the Start benchmark button disabled until API integration is added.
  • Separated form state and validation from rendering for the future MUI/theme migration.
  • Removed the placeholder run-history request and panel.
  • Added focused tests for form validation.

Validation

  • npm run test:form
  • npm run build

Screenshot

image

Closes #34

@amh1k
amh1k requested a review from spron-in October 2, 2026 10:43
@spron-in

spron-in commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Build fails on case-insensitive filesystems (macOS/Windows)

src/BenchmarkForm.tsx (the component) and src/benchmarkForm.ts (the validation logic) have names that differ only by case. On macOS and Windows, import { BenchmarkForm } from './BenchmarkForm' resolves to benchmarkForm.ts, which is tried before .tsx, so npm run build fails:

src/BenchmarkTab.tsx(3,10): error TS2305: Module '"./BenchmarkForm"' has no exported member 'BenchmarkForm'.
src/BenchmarkTab.tsx(3,31): error TS1261: Already included file name '.../src/BenchmarkForm.ts' differs from file name '.../src/benchmarkForm.ts' only in casing.

CI passes only because it runs on Linux, where filenames are case-sensitive. Anyone building or running Tilt locally on a Mac is blocked.

Please rename the logic file so the names no longer collide, for example src/benchmarkFormValidation.ts, and update:

  • the imports in BenchmarkForm.tsx and BenchmarkTab.tsx
  • the test:form script in package.json
  • the import path in tests/benchmarkForm.test.mjs

#38 and #39 contain the same files, so the fix needs to reach those branches too.

amh1k added 3 commits October 4, 2026 18:16
Signed-off-by: amh1k <abdulmoizx97@gmail.com>
Signed-off-by: amh1k <abdulmoizx97@gmail.com>
Signed-off-by: amh1k <abdulmoizx97@gmail.com>
@amh1k
amh1k force-pushed the feat/benchmark-config-form branch from f2efd7b to 4cfd8bd Compare October 4, 2026 13:19
…name collisions

Signed-off-by: amh1k <abdulmoizx97@gmail.com>
@amh1k

amh1k commented Oct 4, 2026

Copy link
Copy Markdown
Collaborator Author

Build fails on case-insensitive filesystems (macOS/Windows)

src/BenchmarkForm.tsx (the component) and src/benchmarkForm.ts (the validation logic) have names that differ only by case. On macOS and Windows, import { BenchmarkForm } from './BenchmarkForm' resolves to benchmarkForm.ts, which is tried before .tsx, so npm run build fails:

src/BenchmarkTab.tsx(3,10): error TS2305: Module '"./BenchmarkForm"' has no exported member 'BenchmarkForm'.
src/BenchmarkTab.tsx(3,31): error TS1261: Already included file name '.../src/BenchmarkForm.ts' differs from file name '.../src/benchmarkForm.ts' only in casing.

CI passes only because it runs on Linux, where filenames are case-sensitive. Anyone building or running Tilt locally on a Mac is blocked.

Please rename the logic file so the names no longer collide, for example src/benchmarkFormValidation.ts, and update:

  • the imports in BenchmarkForm.tsx and BenchmarkTab.tsx
  • the test:form script in package.json
  • the import path in tests/benchmarkForm.test.mjs

#38 and #39 contain the same files, so the fix needs to reach those branches too.

Makes sense, can’t believe I missed that 😅 Thanks for catching it!
Resolved now

@amh1k
amh1k merged commit 4c8832c into main Oct 5, 2026
5 checks passed
@spron-in
spron-in deleted the feat/benchmark-config-form branch October 6, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add benchmark configuration form to cluster detail tab

2 participants