From 3c67ed014fd5b3bee7ada7d6dfa88fe4471c699a Mon Sep 17 00:00:00 2001 From: zkochan Date: Sat, 24 Jun 2017 14:24:50 +0300 Subject: [PATCH] test: linking multiple packages at once Ref #825, Close #826 --- test/link.ts | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/test/link.ts b/test/link.ts index 9b7bc8352b..c4e632334d 100644 --- a/test/link.ts +++ b/test/link.ts @@ -2,6 +2,7 @@ import tape = require('tape') import promisifyTape from 'tape-promise' const test = promisifyTape(tape) import path = require('path') +import writePkg = require('write-pkg') import { prepare, isExecutable, @@ -15,7 +16,8 @@ import { link, linkToGlobal, linkFromGlobal, - installPkgs + installPkgs, + cmd, } from '../src' test('relative link', async function (t) { @@ -63,3 +65,28 @@ test('global link', async function (t) { isExecutable(t, path.resolve('node_modules', '.bin', 'hello-world-js-bin')) }) + +test('linking multiple packages', async (t: tape.Test) => { + const project = prepare(t) + + process.chdir('..') + const globalPrefix = path.resolve('global') + + await writePkg('linked-foo', {name: 'linked-foo', version: '1.0.0'}) + await writePkg('linked-bar', {name: 'linked-bar', version: '1.0.0'}) + + process.chdir('linked-foo') + + const opts = Object.assign(testDefaults(), {globalPrefix}) + + t.comment('linking linked-foo to global package') + await cmd.link([], opts) + + process.chdir('..') + process.chdir('project') + + await cmd.link(['linked-foo', '../linked-bar'], opts) + + project.has('linked-foo') + project.has('linked-bar') +})