CoolFace
Apppublic

strong-tie/inbound-calls

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
reentrant.test.js125 linesDownload Raw Back to test
1'use strict'2 3const { test } = require('tap')4const boot = require('..')5 6test('one level', (t) => {7  t.plan(13)8 9  const app = boot()10  let firstLoaded = false11  let secondLoaded = false12  let thirdLoaded = false13 14  app.use(first)15  app.use(third)16 17  function first (s, opts, done) {18    t.notOk(firstLoaded, 'first is not loaded')19    t.notOk(secondLoaded, 'second is not loaded')20    t.notOk(thirdLoaded, 'third is not loaded')21    firstLoaded = true22    s.use(second)23    done()24  }25 26  function second (s, opts, done) {27    t.ok(firstLoaded, 'first is loaded')28    t.notOk(secondLoaded, 'second is not loaded')29    t.notOk(thirdLoaded, 'third is not loaded')30    secondLoaded = true31    done()32  }33 34  function third (s, opts, done) {35    t.ok(firstLoaded, 'first is loaded')36    t.ok(secondLoaded, 'second is loaded')37    t.notOk(thirdLoaded, 'third is not loaded')38    thirdLoaded = true39    done()40  }41 42  app.on('start', () => {43    t.ok(firstLoaded, 'first is loaded')44    t.ok(secondLoaded, 'second is loaded')45    t.ok(thirdLoaded, 'third is loaded')46    t.pass('booted')47  })48})49 50test('multiple reentrant plugin loading', (t) => {51  t.plan(31)52 53  const app = boot()54  let firstLoaded = false55  let secondLoaded = false56  let thirdLoaded = false57  let fourthLoaded = false58  let fifthLoaded = false59 60  app.use(first)61  app.use(fifth)62 63  function first (s, opts, done) {64    t.notOk(firstLoaded, 'first is not loaded')65    t.notOk(secondLoaded, 'second is not loaded')66    t.notOk(thirdLoaded, 'third is not loaded')67    t.notOk(fourthLoaded, 'fourth is not loaded')68    t.notOk(fifthLoaded, 'fifth is not loaded')69    firstLoaded = true70    s.use(second)71    done()72  }73 74  function second (s, opts, done) {75    t.ok(firstLoaded, 'first is loaded')76    t.notOk(secondLoaded, 'second is not loaded')77    t.notOk(thirdLoaded, 'third is not loaded')78    t.notOk(fourthLoaded, 'fourth is not loaded')79    t.notOk(fifthLoaded, 'fifth is not loaded')80    secondLoaded = true81    s.use(third)82    s.use(fourth)83    done()84  }85 86  function third (s, opts, done) {87    t.ok(firstLoaded, 'first is loaded')88    t.ok(secondLoaded, 'second is loaded')89    t.notOk(thirdLoaded, 'third is not loaded')90    t.notOk(fourthLoaded, 'fourth is not loaded')91    t.notOk(fifthLoaded, 'fifth is not loaded')92    thirdLoaded = true93    done()94  }95 96  function fourth (s, opts, done) {97    t.ok(firstLoaded, 'first is loaded')98    t.ok(secondLoaded, 'second is loaded')99    t.ok(thirdLoaded, 'third is loaded')100    t.notOk(fourthLoaded, 'fourth is not loaded')101    t.notOk(fifthLoaded, 'fifth is not loaded')102    fourthLoaded = true103    done()104  }105 106  function fifth (s, opts, done) {107    t.ok(firstLoaded, 'first is loaded')108    t.ok(secondLoaded, 'second is loaded')109    t.ok(thirdLoaded, 'third is loaded')110    t.ok(fourthLoaded, 'fourth is loaded')111    t.notOk(fifthLoaded, 'fifth is not loaded')112    fifthLoaded = true113    done()114  }115 116  app.on('start', () => {117    t.ok(firstLoaded, 'first is loaded')118    t.ok(secondLoaded, 'second is loaded')119    t.ok(thirdLoaded, 'third is loaded')120    t.ok(fourthLoaded, 'fourth is loaded')121    t.ok(fifthLoaded, 'fifth is loaded')122    t.pass('booted')123  })124})125