11import node from '../../services/node'
22import { getOutputChannel } from '../../editor/outputChannel'
33import parser from './parser'
4- // import {setLatestProcess, isLatestProcess } from './throttle'
4+ import { throttle , debounce } from './throttle'
55
66export interface Payload {
77stepId :string
@@ -22,6 +22,11 @@ const createTestRunner = (config: TestRunnerConfig, callbacks: Callbacks) => {
2222const outputChannelName = 'TEST_OUTPUT'
2323
2424return async ( payload :Payload , onSuccess ?:( ) => void ) :Promise < void > => {
25+ const startTime = throttle ( )
26+ // throttle time early
27+ if ( ! startTime ) {
28+ return
29+ }
2530console . log ( '------------------- RUN TEST -------------------' )
2631
2732// flag as running
@@ -33,6 +38,14 @@ const createTestRunner = (config: TestRunnerConfig, callbacks: Callbacks) => {
3338} catch ( err ) {
3439result = { stdout :err . stdout , stderr :err . stack }
3540}
41+
42+ // ignore output if not latest process
43+ // this is a crappy version of debounce
44+ if ( ! debounce ( startTime ) ) {
45+ return
46+ }
47+ console . log ( '----------------- PROCESS TEST -----------------' )
48+
3649const { stdout, stderr} = result
3750
3851const tap = parser ( stdout || '' )