From e50576c8207f9c2adf6fa3ffc392e25db599d9d8 Mon Sep 17 00:00:00 2001 From: Keith Grant Date: Mon, 15 Jun 2020 16:03:35 -0700 Subject: [PATCH] failed attempt at useThrottle tests --- .../components/JobList/useThrottle.test.jsx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/awx/ui_next/src/components/JobList/useThrottle.test.jsx b/awx/ui_next/src/components/JobList/useThrottle.test.jsx index e69de29bb2..0f5e9aa88a 100644 --- a/awx/ui_next/src/components/JobList/useThrottle.test.jsx +++ b/awx/ui_next/src/components/JobList/useThrottle.test.jsx @@ -0,0 +1,46 @@ +import React from 'react'; +import { act } from 'react-dom/test-utils'; +import { mount } from 'enzyme'; +import useThrottle from './useThrottle'; + +function TestInner() { + return
; +} +function Test({ value }) { + const throttled = useThrottle(value, 500); + return ; +} + +jest.useFakeTimers(); + +describe('useThrottle', () => { + test.skip('should throttle value', async () => { + const mockTime = { value: 1000 }; + const realDateNow = Date.now.bind(global.Date); + const dateNowStub = jest.fn(() => mockTime.value); + global.Date.now = dateNowStub; + let wrapper; + await act(async () => { + wrapper = await mount(); + }); + + wrapper.setProps({ + value: 4, + }); + + expect(wrapper.find('TestInner').prop('throttled')).toEqual(3); + jest.advanceTimersByTime(501); + mockTime.value = 1510; + wrapper.setProps({ + value: 2, + }); + wrapper.setProps({ + value: 4, + }); + wrapper.update(); + expect(wrapper.find('TestInner').prop('throttled')).toEqual(4); + + // Date.now.restore(); + global.Date.now = realDateNow; + }); +});