Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/vreg/node_modules/@bugsnag/core/lib/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/vreg/node_modules/@bugsnag/core/lib/test/callback-runner.test.ts
import runCallbacks from '../callback-runner'
import { NodeCallbackType } from '../async-every'

interface TestEvent {
  name: string
  age?: number
  promiseRan?: string
}

type Callback<T> = (event: T, cb: NodeCallbackType<boolean>) => void;

describe('runCallbacks()', () => {
  it('works with sync/async/promises', done => {
    const event: TestEvent = { name: 'ben' }
    const callbacks: Array<Callback<TestEvent>> = [
      (event) => { event.age = 10 },
      (event, cb) => { setTimeout(() => cb(null, true), 5) },
      (event) => new Promise((resolve) => {
        event.promiseRan = 'yes'
        resolve()
      })
    ]
    runCallbacks(callbacks, event, () => {}, (err, result) => {
      expect(err).toBeFalsy()
      expect(result).toBe(true)
      expect(event.name).toBe('ben')
      expect(event.age).toBe(10)
      expect(event.promiseRan).toBe('yes')
      done()
    })
  })
  it('continues after errors (throw)', done => {
    const event = {}
    let called = false
    const callbacks: Array<Callback<{}>> = [
      (event) => {},
      (event) => { throw new Error('derp') },
      (event) => { called = true }
    ]
    runCallbacks(callbacks, event, () => {}, (err, result) => {
      expect(err).toBeFalsy()
      expect(called).toBe(true)
      done()
    })
  })

  it('continues after errors (promise reject)', done => {
    const event = {}
    let called = false
    const callbacks: Array<Callback<{}>> = [
      (event) => new Promise((resolve) => resolve()),
      (event) => new Promise((resolve, reject) => reject(new Error('derp'))),
      (event) => new Promise((resolve) => {
        called = true
        resolve()
      })
    ]
    runCallbacks(callbacks, event, () => {}, (err, result) => {
      expect(err).toBeFalsy()
      expect(called).toBe(true)
      done()
    })
  })

  it('continues after errors (cb(err))', done => {
    const event = {}
    let called = false
    const callbacks: Array<Callback<{}>> = [
      (event, cb) => cb(null),
      (event, cb) => cb(new Error('derp')),
      (event, cb) => {
        called = true
        cb(null)
      }
    ]
    runCallbacks(callbacks, event, () => {}, (err, result) => {
      expect(err).toBeFalsy()
      expect(called).toBe(true)
      done()
    })
  })

  it('skips non-functions', done => {
    const event = {}
    let called = false
    const callbacks: Array<Callback<{}> | null> = [
      (event, cb) => cb(null),
      null,
      (event, cb) => {
        called = true
        cb(null)
      }
    ]
    runCallbacks(callbacks, event, () => {}, (err, result) => {
      expect(err).toBeFalsy()
      expect(called).toBe(true)
      done()
    })
  })
})

Spamworldpro Mini