Skip to content

Commit a43db24

Browse files
authored
chore: Fix hidden deps between component tests (#1557)
1 parent f165b3e commit a43db24

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

tests/components/generic_events/aggregate/index.test.js

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -56,32 +56,29 @@ test('should warn if invalid event is provide', async () => {
5656
})
5757

5858
test('should harvest early if will exceed 1mb', async () => {
59-
mainAgent.runtime.harvester.triggerHarvestFor = jest.fn()
60-
expect(mainAgent.runtime.harvester.triggerHarvestFor).toHaveBeenCalledTimes(0)
59+
const triggerHarvestSpy = jest.spyOn(mainAgent.runtime.harvester, 'triggerHarvestFor').mockImplementation(() => {})
60+
expect(triggerHarvestSpy).toHaveBeenCalledTimes(0)
6161
genericEventsAggregate.ee.emit('rumresp', [{ ins: 1 }])
6262
await new Promise(process.nextTick)
63-
expect(mainAgent.runtime.harvester.triggerHarvestFor).toHaveBeenCalledTimes(1)
63+
expect(triggerHarvestSpy).toHaveBeenCalledTimes(1)
6464

6565
genericEventsAggregate.addEvent({ name: 'test', eventType: 'x'.repeat(15000) })
6666

67-
expect(mainAgent.runtime.harvester.triggerHarvestFor).toHaveBeenCalledTimes(1)
67+
expect(triggerHarvestSpy).toHaveBeenCalledTimes(1)
6868
genericEventsAggregate.addEvent({ name: 1000, eventType: 'x'.repeat(100000) })
69-
expect(mainAgent.runtime.harvester.triggerHarvestFor).toHaveBeenCalledTimes(2)
70-
71-
mainAgent.runtime.harvester.triggerHarvestFor.mockRestore()
69+
expect(triggerHarvestSpy).toHaveBeenCalledTimes(2)
70+
triggerHarvestSpy.mockRestore()
7271
})
7372

7473
test('should not harvest if single event will exceed 1mb', async () => {
7574
genericEventsAggregate.ee.emit('rumresp', [{ ins: 1 }])
76-
7775
await new Promise(process.nextTick)
76+
const triggerHarvestSpy = jest.spyOn(mainAgent.runtime.harvester, 'triggerHarvestFor').mockImplementation(() => {})
7877

79-
mainAgent.runtime.harvester.triggerHarvestFor = jest.fn()
8078
genericEventsAggregate.addEvent({ name: 'test', eventType: 'x'.repeat(1000000) })
8179

82-
expect(mainAgent.runtime.harvester.triggerHarvestFor).not.toHaveBeenCalled()
83-
84-
mainAgent.runtime.harvester.triggerHarvestFor.mockRestore()
80+
expect(triggerHarvestSpy).toHaveBeenCalledTimes(0)
81+
triggerHarvestSpy.mockRestore()
8582
})
8683

8784
describe('sub-features', () => {
@@ -234,7 +231,8 @@ describe('sub-features', () => {
234231
test('should record marks when enabled', async () => {
235232
mainAgent.init.performance.capture_marks = true
236233
mainAgent.info.jsAttributes = { globalFoo: 'globalBar' }
237-
const mockPerformanceObserver = jest.fn(cb => ({
234+
const origGlobalPO = global.PerformanceObserver
235+
global.PerformanceObserver = jest.fn(cb => ({
238236
observe: () => {
239237
const callCb = () => {
240238
// eslint-disable-next-line
@@ -251,13 +249,15 @@ describe('sub-features', () => {
251249
disconnect: jest.fn()
252250
}))
253251

254-
global.PerformanceObserver = mockPerformanceObserver
255252
global.PerformanceObserver.supportedEntryTypes = ['mark']
256253

257254
const { Aggregate } = await import('../../../../src/features/generic_events/aggregate')
258255
genericEventsAggregate = new Aggregate(mainAgent)
259256
expect(genericEventsAggregate.events?.[0]).toBeUndefined()
260257

258+
// temporarily swap out triggerHarvestFor so the buffer doesn't get emptied before we can check
259+
const triggerHarvestSpy = jest.spyOn(mainAgent.runtime.harvester, 'triggerHarvestFor').mockImplementation(() => {})
260+
261261
genericEventsAggregate.ee.emit('rumresp', [{ ins: 1 }])
262262
await new Promise(process.nextTick)
263263

@@ -269,12 +269,16 @@ describe('sub-features', () => {
269269
entryType: 'mark',
270270
entryDetail: JSON.stringify({ foo: 'bar' })
271271
})
272+
273+
triggerHarvestSpy.mockRestore()
274+
global.PerformanceObserver = origGlobalPO
272275
})
273276

274277
test('should record measures when enabled', async () => {
275278
mainAgent.init.performance = { capture_measures: true, capture_detail: true, resources: { enabled: false, asset_types: [], first_party_domains: [], ignore_newrelic: true } }
276279
mainAgent.info.jsAttributes = { globalFoo: 'globalBar' }
277-
const mockPerformanceObserver = jest.fn(cb => ({
280+
const origGlobalPO = global.PerformanceObserver
281+
global.PerformanceObserver = jest.fn(cb => ({
278282
observe: () => {
279283
const callCb = () => {
280284
// eslint-disable-next-line
@@ -291,13 +295,15 @@ describe('sub-features', () => {
291295
disconnect: jest.fn()
292296
}))
293297

294-
global.PerformanceObserver = mockPerformanceObserver
295298
global.PerformanceObserver.supportedEntryTypes = ['measure']
296299

297300
const { Aggregate } = await import('../../../../src/features/generic_events/aggregate')
298301
genericEventsAggregate = new Aggregate(mainAgent)
299302
expect(genericEventsAggregate.events?.[0]).toBeUndefined()
300303

304+
// temporarily swap out triggerHarvestFor so the buffer doesn't get emptied before we can check
305+
const triggerHarvestSpy = jest.spyOn(mainAgent.runtime.harvester, 'triggerHarvestFor').mockImplementation(() => {})
306+
301307
genericEventsAggregate.ee.emit('rumresp', [{ ins: 1 }])
302308
await new Promise(process.nextTick)
303309

@@ -309,5 +315,8 @@ describe('sub-features', () => {
309315
entryType: 'measure',
310316
'entryDetail.foo': 'bar'
311317
})
318+
319+
triggerHarvestSpy.mockRestore()
320+
global.PerformanceObserver = origGlobalPO
312321
})
313322
})

0 commit comments

Comments
 (0)