inbound-calls / node_modules /avvio /test /pretty-print.test.js
saikumaraili
test
23ac194
'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)
}
})