Skip to content

Commit 7d71b01

Browse files
committed
Let Claude have a try
1 parent 822d6de commit 7d71b01

1 file changed

Lines changed: 40 additions & 38 deletions

File tree

routes/__tests__/overwrite-optimistic-locking.test.js

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,36 @@
1-
import request from 'supertest'
2-
import app from '../../app.js'
31
import { jest } from '@jest/globals'
2+
import express from 'express'
3+
import request from 'supertest'
4+
import controller from '../../db-controller.js'
45

5-
// Mock the database and auth modules
6-
const mockOverwrite = jest.fn()
7-
const mockFindOne = jest.fn()
8-
const mockReplaceOne = jest.fn()
9-
const mockCheckJwt = jest.fn((req, res, next) => {
10-
req.user = { sub: 'test-user' }
11-
next()
12-
})
13-
14-
jest.mock('../../db-controller.js', () => ({
15-
default: {
16-
overwrite: mockOverwrite,
17-
findOne: mockFindOne,
18-
replaceOne: mockReplaceOne,
19-
id: jest.fn()
6+
// Mock the database module
7+
jest.mock('../../database/index.js', () => ({
8+
db: {
9+
findOne: jest.fn(),
10+
replaceOne: jest.fn()
2011
}
2112
}))
2213

23-
jest.mock('../../auth/index.js', () => ({
24-
default: {
25-
checkJwt: mockCheckJwt
26-
}
27-
}))
14+
// Import the mocked db after mocking
15+
import { db } from '../../database/index.js'
16+
17+
// Helper to add auth to requests
18+
const addAuth = (req, res, next) => {
19+
req.user = {"http://store.rerum.io/agent": "test-user"}
20+
next()
21+
}
22+
23+
// Create a test Express app
24+
const routeTester = express()
25+
routeTester.use(express.json())
26+
routeTester.use(express.urlencoded({ extended: false }))
27+
28+
// Mount our routes
29+
routeTester.use('/overwrite', [addAuth, controller.overwrite])
30+
routeTester.use('/id/:_id', controller.id)
2831

2932
describe('Overwrite Optimistic Locking', () => {
3033
beforeEach(() => {
31-
// Reset mocks
3234
jest.clearAllMocks()
3335
})
3436

@@ -44,10 +46,10 @@ describe('Overwrite Optimistic Locking', () => {
4446
data: 'original-data'
4547
}
4648

47-
mockFindOne.mockResolvedValue(mockObject)
48-
mockReplaceOne.mockResolvedValue({ modifiedCount: 1 })
49+
db.findOne.mockResolvedValue(mockObject)
50+
db.replaceOne.mockResolvedValue({ modifiedCount: 1 })
4951

50-
const response = await request(app)
52+
const response = await request(routeTester)
5153
.put('/overwrite')
5254
.send({
5355
'@id': 'http://example.com/test-id',
@@ -70,10 +72,10 @@ describe('Overwrite Optimistic Locking', () => {
7072
data: 'original-data'
7173
}
7274

73-
mockFindOne.mockResolvedValue(mockObject)
74-
mockReplaceOne.mockResolvedValue({ modifiedCount: 1 })
75+
db.findOne.mockResolvedValue(mockObject)
76+
db.replaceOne.mockResolvedValue({ modifiedCount: 1 })
7577

76-
const response = await request(app)
78+
const response = await request(routeTester)
7779
.put('/overwrite')
7880
.set('If-Overwritten-Version', '2025-06-24T10:00:00')
7981
.send({
@@ -97,9 +99,9 @@ describe('Overwrite Optimistic Locking', () => {
9799
data: 'original-data'
98100
}
99101

100-
mockFindOne.mockResolvedValue(mockObject)
102+
db.findOne.mockResolvedValue(mockObject)
101103

102-
const response = await request(app)
104+
const response = await request(routeTester)
103105
.put('/overwrite')
104106
.set('If-Overwritten-Version', '2025-06-24T10:00:00')
105107
.send({
@@ -124,10 +126,10 @@ describe('Overwrite Optimistic Locking', () => {
124126
data: 'original-data'
125127
}
126128

127-
mockFindOne.mockResolvedValue(mockObject)
128-
mockReplaceOne.mockResolvedValue({ modifiedCount: 1 })
129+
db.findOne.mockResolvedValue(mockObject)
130+
db.replaceOne.mockResolvedValue({ modifiedCount: 1 })
129131

130-
const response = await request(app)
132+
const response = await request(routeTester)
131133
.put('/overwrite')
132134
.send({
133135
'@id': 'http://example.com/test-id',
@@ -154,9 +156,9 @@ describe('ID endpoint includes version header', () => {
154156
data: 'some-data'
155157
}
156158

157-
mockFindOne.mockResolvedValue(mockObject)
159+
db.findOne.mockResolvedValue(mockObject)
158160

159-
const response = await request(app)
161+
const response = await request(routeTester)
160162
.get('/id/test-id')
161163

162164
expect(response.status).toBe(200)
@@ -173,9 +175,9 @@ describe('ID endpoint includes version header', () => {
173175
data: 'some-data'
174176
}
175177

176-
mockFindOne.mockResolvedValue(mockObject)
178+
db.findOne.mockResolvedValue(mockObject)
177179

178-
const response = await request(app)
180+
const response = await request(routeTester)
179181
.get('/id/test-id')
180182

181183
expect(response.status).toBe(200)

0 commit comments

Comments
 (0)