Files
pnpm/exec/plugin-commands-script-runners/test/exec.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

61 lines
1.4 KiB
TypeScript

import { jest } from '@jest/globals'
import { prepareEmpty } from '@pnpm/prepare'
import { DEFAULT_OPTS } from './utils/index.js'
jest.unstable_mockModule('execa', () => ({
safeExeca: jest.fn(),
sync: jest.fn(),
}))
const { safeExeca: execa } = await import('execa')
const { exec } = await import('@pnpm/plugin-commands-script-runners')
beforeEach(() => jest.mocked(execa).mockClear())
test('exec should set npm_config_user_agent', async () => {
prepareEmpty()
const userAgent = 'pnpm/0.0.0'
await exec.handler({
...DEFAULT_OPTS,
dir: process.cwd(),
selectedProjectsGraph: {},
userAgent,
}, ['eslint'])
expect(execa).toHaveBeenCalledWith('eslint', [], expect.objectContaining({
env: expect.objectContaining({
npm_config_user_agent: userAgent,
}),
}))
})
test('exec should set the NODE_OPTIONS env var', async () => {
prepareEmpty()
await exec.handler({
...DEFAULT_OPTS,
dir: process.cwd(),
selectedProjectsGraph: {},
nodeOptions: '--max-old-space-size=4096',
}, ['eslint'])
expect(execa).toHaveBeenCalledWith('eslint', [], expect.objectContaining({
env: expect.objectContaining({
NODE_OPTIONS: '--max-old-space-size=4096',
}),
}))
})
test('exec should specify the command', async () => {
prepareEmpty()
await expect(exec.handler({
...DEFAULT_OPTS,
dir: process.cwd(),
selectedProjectsGraph: {},
}, [])
).rejects.toThrow("'pnpm exec' requires a command to run")
})