Skip to content

Commit deebe9c

Browse files
authored
fix(test): use fake timers to speed up webhook and curation tests (#1418)
1 parent 7a89c7f commit deebe9c

File tree

2 files changed

+44
-16
lines changed

2 files changed

+44
-16
lines changed

test/providers/curation/processTest.js

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,21 @@ const memoryQueue = require('../../../providers/queueing/memoryQueue')
77
const sinon = require('sinon')
88

99
describe('Curation queue processing', () => {
10+
let clock
11+
12+
beforeEach(() => {
13+
clock = sinon.useFakeTimers()
14+
})
15+
16+
afterEach(() => {
17+
clock.restore()
18+
})
19+
1020
it('handles opened message', async function () {
11-
this.timeout(12000)
1221
const { queue, curationService, logger } = setup({ action: 'opened' })
13-
await process(queue, curationService, logger, true)
22+
const promise = process(queue, curationService, logger, true)
23+
await clock.runAllAsync()
24+
await promise
1425

1526
expect(curationService.getContributedCurations.calledOnce).to.be.true
1627
expect(curationService.validateContributions.calledOnce).to.be.true
@@ -21,9 +32,10 @@ describe('Curation queue processing', () => {
2132
})
2233

2334
it('handles synchronize message', async function () {
24-
this.timeout(12000)
2535
const { queue, curationService, logger } = setup({ action: 'synchronize' })
26-
await process(queue, curationService, logger, true)
36+
const promise = process(queue, curationService, logger, true)
37+
await clock.runAllAsync()
38+
await promise
2739

2840
expect(curationService.getContributedCurations.calledOnce).to.be.true
2941
expect(curationService.validateContributions.calledOnce).to.be.true
@@ -34,9 +46,10 @@ describe('Curation queue processing', () => {
3446
})
3547

3648
it('handles closed message', async function () {
37-
this.timeout(12000)
3849
const { queue, curationService, logger } = setup({ action: 'closed' })
39-
await process(queue, curationService, logger, true)
50+
const promise = process(queue, curationService, logger, true)
51+
await clock.runAllAsync()
52+
await promise
4053

4154
expect(curationService.getContributedCurations.calledOnce).to.be.false
4255
expect(curationService.validateContributions.calledOnce).to.be.false

test/routes/webhookGitHubTests.js

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ const httpMocks = require('node-mocks-http')
77
const sinon = require('sinon')
88

99
describe('Webhook Route for GitHub calls', () => {
10+
let clock
11+
12+
beforeEach(() => {
13+
clock = sinon.useFakeTimers()
14+
})
15+
16+
afterEach(() => {
17+
clock.restore()
18+
})
19+
1020
it('handles invalid action', async () => {
1121
const request = createRequest('yeah, right')
1222
const response = httpMocks.createResponse()
@@ -65,13 +75,14 @@ describe('Webhook Route for GitHub calls', () => {
6575
// })
6676

6777
it('skips closed event that is not merged', async function () {
68-
this.timeout(12000)
6978
const request = createRequest('closed', false)
7079
const response = httpMocks.createResponse()
7180
const logger = createLogger()
7281
const service = createCurationService()
7382
const router = webhookRoutes(service, null, logger, 'secret', 'secret', true)
74-
await router._handlePost(request, response)
83+
const promise = router._handlePost(request, response)
84+
await clock.runAllAsync()
85+
await promise
7586
expect(response.statusCode).to.be.eq(200)
7687
expect(service.validateContributions.calledOnce).to.be.false
7788
expect(service.addByMergedCuration.calledOnce).to.be.true
@@ -82,13 +93,14 @@ describe('Webhook Route for GitHub calls', () => {
8293
})
8394

8495
it('calls valid for PR changes', async function () {
85-
this.timeout(12000)
8696
const request = createRequest('opened')
8797
const response = httpMocks.createResponse()
8898
const logger = createLogger()
8999
const service = createCurationService()
90100
const router = webhookRoutes(service, null, logger, 'secret', 'secret', true)
91-
await router._handlePost(request, response)
101+
const promise = router._handlePost(request, response)
102+
await clock.runAllAsync()
103+
await promise
92104
expect(response.statusCode).to.be.eq(200)
93105
expect(service.validateContributions.calledOnce).to.be.true
94106
expect(service.updateContribution.calledOnce).to.be.true
@@ -97,13 +109,14 @@ describe('Webhook Route for GitHub calls', () => {
97109
})
98110

99111
it('calls missing for PR changes', async function () {
100-
this.timeout(12000)
101112
const request = createRequest('opened')
102113
const response = httpMocks.createResponse()
103114
const logger = createLogger()
104115
const service = createCurationService()
105116
const router = webhookRoutes(service, null, logger, 'secret', 'secret', true)
106-
await router._handlePost(request, response)
117+
const promise = router._handlePost(request, response)
118+
await clock.runAllAsync()
119+
await promise
107120
expect(response.statusCode).to.be.eq(200)
108121
expect(service.validateContributions.calledOnce).to.be.true
109122
expect(service.updateContribution.calledOnce).to.be.true
@@ -112,24 +125,26 @@ describe('Webhook Route for GitHub calls', () => {
112125
})
113126

114127
it('validates the curation when a PR is opened', async function () {
115-
this.timeout(12000)
116128
const request = createRequest('opened')
117129
const response = httpMocks.createResponse()
118130
const logger = createLogger()
119131
const service = createCurationService()
120132
const router = webhookRoutes(service, null, logger, 'secret', 'secret', true)
121-
await router._handlePost(request, response)
133+
const promise = router._handlePost(request, response)
134+
await clock.runAllAsync()
135+
await promise
122136
expect(service.validateContributions.calledOnce).to.be.true
123137
})
124138

125139
it('validates the curation when a PR is reopened', async function () {
126-
this.timeout(12000)
127140
const request = createRequest('reopened')
128141
const response = httpMocks.createResponse()
129142
const logger = createLogger()
130143
const service = createCurationService()
131144
const router = webhookRoutes(service, null, logger, 'secret', 'secret', true)
132-
await router._handlePost(request, response)
145+
const promise = router._handlePost(request, response)
146+
await clock.runAllAsync()
147+
await promise
133148
expect(service.validateContributions.calledOnce).to.be.true
134149
})
135150
})

0 commit comments

Comments
 (0)