You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.7 KiB
76 lines
1.7 KiB
'use strict'
|
|
|
|
const test = require('tap').test
|
|
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 = [/bound 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.equals(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)
|
|
}
|
|
})
|