HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/LC/node_modules/avvio/test/pretty-print.test.js
'use strict'

const { test } = require('tap')
const boot = require('..')

test('pretty print', t => {
  t.plan(19)

  const app = boot()
  app
    .use(first)
    .use(duplicate, { count: 3 })
    .use(second).after(afterUse).after(after)
    .use(duplicate, { count: 2 })
    .use(third).after(after)
    .use(duplicate, { count: 1 })

  const linesExpected = [/^root \d+ ms$/,
    /^├── first \d+ ms$/,
    /^├─┬ duplicate \d+ ms$/,
    /^│ └─┬ duplicate \d+ ms$/,
    /^│ {3}└─┬ duplicate \d+ ms$/,
    /^│ {5}└── duplicate \d+ ms$/,
    /^├── second \d+ ms$/,
    /^├─┬ bound _after \d+ ms$/,
    /^│ └── afterInsider \d+ ms$/,
    /^├── bound _after \d+ ms$/,
    /^├─┬ duplicate \d+ ms$/,
    /^│ └─┬ duplicate \d+ ms$/,
    /^│ {3}└── duplicate \d+ ms$/,
    /^├── third \d+ ms$/,
    /^├── bound _after \d+ ms$/,
    /^└─┬ duplicate \d+ ms$/,
    /^ {2}└── duplicate \d+ ms$/,
    ''
  ]

  app.on('preReady', function show () {
    const print = app.prettyPrint()
    const lines = print.split('\n')

    t.equal(lines.length, linesExpected.length)
    lines.forEach((l, i) => {
      t.match(l, linesExpected[i])
    })
  })

  function first (s, opts, done) {
    done()
  }
  function second (s, opts, done) {
    done()
  }
  function third (s, opts, done) {
    done()
  }
  function after (err, cb) {
    cb(err)
  }
  function afterUse (err, cb) {
    app.use(afterInsider)
    cb(err)
  }

  function afterInsider (s, opts, done) {
    done()
  }

  function duplicate (instance, opts, cb) {
    if (opts.count > 0) {
      instance.use(duplicate, { count: opts.count - 1 })
    }
    setTimeout(cb, 20)
  }
})