Files
pnpm/cli/default-reporter/test/reportingExecutionTime.ts
Zoltan Kochan 1c8c4e49f5 style: add eslint-plugin-simple-import-sort (#10947)
Add eslint-plugin-simple-import-sort to enforce consistent import ordering:
- Node.js builtins first
- External packages second
- Relative imports last
- Named imports sorted alphabetically within each statement
2026-03-13 02:02:38 +01:00

50 lines
1.2 KiB
TypeScript

import { setTimeout } from 'node:timers/promises'
import { packageManager } from '@pnpm/cli-meta'
import { executionTimeLogger } from '@pnpm/core-loggers'
import { toOutput$ } from '@pnpm/default-reporter'
import { createStreamParser } from '@pnpm/logger'
import { firstValueFrom } from 'rxjs'
const NO_OUTPUT = Symbol('test should not log anything')
test('does not print execution time for help command', async () => {
const output$ = toOutput$({
context: {
argv: ['help'],
},
streamParser: createStreamParser(),
})
executionTimeLogger.debug({
startedAt: 1665279402859,
endedAt: 1665279413671,
})
const output = await Promise.race([
firstValueFrom(output$),
setTimeout(10).then(() => NO_OUTPUT),
])
expect(output).toEqual(NO_OUTPUT)
})
test('prints execution time for install command', async () => {
const output$ = toOutput$({
context: {
argv: ['install'],
},
streamParser: createStreamParser(),
})
executionTimeLogger.debug({
startedAt: 1665279402859,
endedAt: 1665279413671,
})
expect.assertions(1)
const output = await firstValueFrom(output$)
expect(output).toBe(`Done in 10.8s using ${packageManager.name} v${packageManager.version}`)
})