mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-24 01:51:41 -04:00
test: scripts preserve symlinks on Node.js >= 7.1.0
This commit is contained in:
@@ -2,7 +2,7 @@ import {PnpmOptions} from '../types'
|
||||
import {sync as runScriptSync} from '../runScript'
|
||||
|
||||
export default function (input: string[], opts: PnpmOptions) {
|
||||
runScriptSync('npm', ['run'].concat(input), {
|
||||
return runScriptSync('npm', ['run'].concat(input), {
|
||||
cwd: process.cwd(),
|
||||
stdio: 'inherit',
|
||||
})
|
||||
|
||||
@@ -5,3 +5,4 @@ import './uninstall'
|
||||
import './link'
|
||||
import './prune'
|
||||
import './cache'
|
||||
import './run'
|
||||
|
||||
@@ -74,3 +74,7 @@ cd ..;
|
||||
cd sh-hello-world;
|
||||
npm publish;
|
||||
cd ..;
|
||||
|
||||
cd symlinks-preserved;
|
||||
npm publish;
|
||||
cd ..;
|
||||
|
||||
4
test/packages/symlinks-preserved/index.js
Normal file
4
test/packages/symlinks-preserved/index.js
Normal file
@@ -0,0 +1,4 @@
|
||||
'use strict'
|
||||
const fs = require('fs')
|
||||
|
||||
module.exports = fs.realpathSync(__filename) !== __filename
|
||||
4
test/packages/symlinks-preserved/package.json
Normal file
4
test/packages/symlinks-preserved/package.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "symlinks-preserved",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
35
test/run.ts
Normal file
35
test/run.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import tape = require('tape')
|
||||
import promisifyTape from 'tape-promise'
|
||||
const test = promisifyTape(tape)
|
||||
import semver = require('semver')
|
||||
import fs = require('mz/fs')
|
||||
import prepare from './support/prepare'
|
||||
import testDefaults from './support/testDefaults'
|
||||
import {installPkgs} from '../lib'
|
||||
import runCmd from '../lib/cmd/run'
|
||||
|
||||
const preserveSymlinksEnvVariable = semver.satisfies(process.version, '>=7.1.0')
|
||||
|
||||
test('run node in scripts with preserve symlinks mode', async function (t) {
|
||||
if (!preserveSymlinksEnvVariable) {
|
||||
t.skip('this test is only for Node.js >= 7.1.0')
|
||||
return
|
||||
}
|
||||
|
||||
prepare({
|
||||
scripts: {
|
||||
test: 'node index'
|
||||
}
|
||||
})
|
||||
|
||||
await fs.writeFile('index.js', `
|
||||
const fs = require('fs')
|
||||
const symlinksPreserved = require('symlinks-preserved')
|
||||
fs.writeFileSync('test-result', symlinksPreserved, 'utf8')
|
||||
`, 'utf8')
|
||||
|
||||
await installPkgs(['symlinks-preserved'], testDefaults())
|
||||
const result = runCmd(['test'], {})
|
||||
t.equal(result.status, 0, 'executable exited with success')
|
||||
t.equal(await fs.readFile('test-result', 'utf8'), 'true', 'symlinks are preserved')
|
||||
})
|
||||
Reference in New Issue
Block a user