From 70ea0a0ac3582bc5c61a2987877bb7e49bba2441 Mon Sep 17 00:00:00 2001 From: AG Date: Thu, 11 Dec 2025 22:27:25 +0200 Subject: [PATCH] Empty Reps field defaults to 1 --- playwright-report/index.html | 2 +- server/test.db | Bin 897024 -> 925696 bytes src/hooks/useWorkoutForm.ts | 6 +++--- tests/workout-tracking.spec.ts | 22 ++++++++++++++++++++++ 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/playwright-report/index.html b/playwright-report/index.html index 23f306d..fc99077 100644 --- a/playwright-report/index.html +++ b/playwright-report/index.html @@ -82,4 +82,4 @@ Error generating stack: `+n.message+`
- \ No newline at end of file + \ No newline at end of file diff --git a/server/test.db b/server/test.db index 7109c5a9c6368d6841570fa67b2ab59253e8ae6e..110acd151552f55256216b8dbfb7b70f01478533 100644 GIT binary patch delta 24989 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%0DYA)c!ALi|;79x&#R@qRn~Lq= z@H2>^)cEKJIx+iiAMx|?oNopa49GcPf1nM5tTcoz z7Wh9&@F4*%^c54bffSjIALPHd3AYiwEz&@ct!VMKh!-JeQ3>)B@;UN$^z^n!8XuLF zE{}{L$_INOt5>zOZWs(%b7RP|!vN`y_6^P;4~5MBs5i2H8fnA!vil-s1pGg9Uu0<^ zIUVx`k9W_7ZuOD?`wimH>m* zWH>q=1UV3KL4IC@?7x@RRS_y(3W7roDnkNg3~3+8`v;zi0#G-o6az2`4a}RT>N3Ry zBhd@%LFFF!JW?$D@8*Gw77GCkRS>;}B8L<0**glN#}n{Py9++t$A!^+g3bYO2BJL& zeDVN1*8|1urzJq@B}q~x$A!QTYP`-E8hv6~!9x5+jCELxO)&2;58yAN!kVZ!jySik zs$*AtOMD4;4tq&li$`N`#_o$<2Kmd=iCVO@CaMiNU#CKwYEfK`EmSzNDg?__F~~$ChOeOf4W+fzt|TJvglZsOh?BSr9UNvMS-f z&WXYwgH-f$by4H&#?zS97T%;RhjrNIlT0O&#W09Zf>X)PC~@MY1nVErN4uVU|(WP)`EL{2sV zn3RAZ>=1~RZP;*RY{&?Kx-~>c#oh^~_aS!@#D*|wkO~Yo$4P@nAIPK#Mp)MYhRBveXN~*BvutWksB&}COjqlm~Ew>6xIlH zn8&!&g|X59fKB*GbUjlQt!9spPKo03HIQ6<%M2!Z8=@ zy6-u@=_qM{wStX;Wi!n{?YWi4v6jHl|;a{Y{1unWyMQNiU+QRA8dXGrZ>U+ z^TFFQBnJjSP8>icNCeAJ9Ac>eZh?i%gI}Hjd1V=Lh=63n4={6ZJb|bL**(C_v;brd zb|0pPat;gPN`TQoKL_PUP<~=Sg@*(@nNUUtZ;2g%k=cZz(F62CLD+kMP?~K zd44m~(16bv8|GMq$bF#CD*02Y(|MX<4p2ITMMAp*M*Td|Fh?zfuaalf%hL>lc81B} zu|8Y$HBbFUrBpj?Je}QR;?hvLB zP*|yU2-C8wJB0U%Q-g?9394Ki$g)Ab5I70|Wt%?QN-7kdaxLV<6;amt2OISHOZIkd9CRfkzczPOuuAl%Z zs0Gp>Z3)3E*bdKt#G36uPk_@FFk(BF1|$8XWPk^&Du66NylW*Pa`m7TO9banZ_Qr# zLt)d1xWe8UR9EIo^VvJI1v`Z6+1w@v#d=`5p`_GOz*Gc&g$WKKnAcoj?#m7oKK&;9 zyPpcDaHPs^hUAe@MX;N*b9V|_o$rx7 zF(+{x7v=@Slw+6s?e4Oo%Hg%fJ�g2Zmxwn#s_m8S!QV-t6wI}BxuMkYFK7- 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 diff --git a/src/hooks/useWorkoutForm.ts b/src/hooks/useWorkoutForm.ts index f912a32..fe760df 100644 --- a/src/hooks/useWorkoutForm.ts +++ b/src/hooks/useWorkoutForm.ts @@ -71,11 +71,11 @@ export const useWorkoutForm = ({ userId, onSetAdded, onUpdateSet }: UseWorkoutFo switch (selectedExercise.type) { case ExerciseType.STRENGTH: if (weight) setData.weight = parseFloat(weight); - if (reps) setData.reps = parseInt(reps); + setData.reps = reps ? parseInt(reps) : 1; break; case ExerciseType.BODYWEIGHT: if (weight) setData.weight = parseFloat(weight); - if (reps) setData.reps = parseInt(reps); + setData.reps = reps ? parseInt(reps) : 1; setData.bodyWeightPercentage = parseFloat(bwPercentage) || 100; break; case ExerciseType.CARDIO: @@ -93,7 +93,7 @@ export const useWorkoutForm = ({ userId, onSetAdded, onUpdateSet }: UseWorkoutFo if (distance) setData.distanceMeters = parseFloat(distance); break; case ExerciseType.PLYOMETRIC: - if (reps) setData.reps = parseInt(reps); + setData.reps = reps ? parseInt(reps) : 1; break; } return setData; diff --git a/tests/workout-tracking.spec.ts b/tests/workout-tracking.spec.ts index d8b9885..120167b 100644 --- a/tests/workout-tracking.spec.ts +++ b/tests/workout-tracking.spec.ts @@ -482,4 +482,26 @@ test.describe('III. Workout Tracking', () => { + test('3.16 C. Active Session - Log Set with Default Reps', async ({ page, createUniqueUser, request }) => { + const user = await loginAndSetup(page, createUniqueUser); + + const exName = 'Default Reps ' + randomUUID().slice(0, 4); + await request.post('/api/exercises', { + data: { name: exName, type: 'STRENGTH' }, + headers: { 'Authorization': `Bearer ${user.token}` } + }); + + await page.getByRole('button', { name: /Free Workout|Start Empty/i }).click(); + await page.getByRole('textbox', { name: /Select Exercise/i }).click(); + await page.getByText(exName).click(); + + await page.getByLabel('Weight (kg)').first().fill('50'); + // Reps left empty intentionally + + await page.getByRole('button', { name: /Log Set/i }).click(); + + // Verify it logged as 1 rep + await expect(page.getByText('50 kg x 1 reps')).toBeVisible(); + }); + });