diff --git a/backend/src/__tests__/auth.test.js b/backend/src/__tests__/auth.test.js index 62bc26a..057cab4 100644 --- a/backend/src/__tests__/auth.test.js +++ b/backend/src/__tests__/auth.test.js @@ -107,5 +107,43 @@ test('login should reject invalid credentials', async () => { assert.strictEqual(res.statusCode, 401); }); +test('register should handle duplicate email', async () => { + const mockPoolWithDup = { + query: (sql, params) => { + if (sql.includes('INSERT INTO users')) { + const err = new Error('Duplicate entry'); + err.code = 'ER_DUP_ENTRY'; + throw err; + } + return []; + } + }; + + pool.query = mockPoolWithDup.query; + + const req = { + body: { + email: 'test@example.com', + password: 'password123', + displayName: 'Test User' + } + }; + const res = { + status: (code) => { + res.statusCode = code; + return res; + }, + json: (data) => { + res.data = data; + } + }; + + await require('../routes/auth').default.post('/register', req, res); + assert.strictEqual(res.statusCode, 409); + + // Restore the original pool + pool.query = originalPool.query; +}); + // Restore the original pool pool.query = originalPool; \ No newline at end of file diff --git a/docs/runtime/pick_next_task_state.env b/docs/runtime/pick_next_task_state.env index 80c6513..b5238c7 100644 --- a/docs/runtime/pick_next_task_state.env +++ b/docs/runtime/pick_next_task_state.env @@ -1,2 +1,2 @@ -LAST_ROUTE=offers.js -UPDATED_AT=2026-03-06T19:56:59Z +LAST_ROUTE=auth.js +UPDATED_AT=2026-03-06T20:10:38Z