@@ -609,11 +609,133 @@ test('save behavior', function (t) {
609
609
})
610
610
})
611
611
612
+
var rmdir = testdir + '/remove-behavior'
613
+
testdirContent['remove-behavior'] = Dir({
614
+
'rmsymlink': Dir({
615
+
'package.json': File({
616
+
name: 'remove-behavior',
617
+
version: '1.0.0',
618
+
dependencies: {
619
+
dep1: 'file:dep1',
620
+
}
621
+
}),
622
+
'package-lock.json': File({
623
+
name: 'remove-behavior',
624
+
version: '1.0.0',
625
+
lockfileVersion: 1,
626
+
requires: true,
627
+
dependencies: {
628
+
dep1: {
629
+
version: 'file:dep1',
630
+
requires: {
631
+
dep2: 'file:dep2'
632
+
},
633
+
dependencies: {
634
+
dep2: {
635
+
version: 'file:dep2',
636
+
bundled: true
637
+
}
638
+
}
639
+
}
640
+
}
641
+
}),
642
+
dep1: Dir({
643
+
'package.json': File({
644
+
name: 'dep1',
645
+
version: '1.0.0',
646
+
dependencies: {
647
+
dep2: 'file:../dep2'
648
+
}
649
+
}),
650
+
'node_modules': Dir({
651
+
dep2: Symlink('../../dep2')
652
+
})
653
+
}),
654
+
dep2: Dir({
655
+
'package.json': File({
656
+
name: 'dep2',
657
+
version: '1.0.0'
658
+
})
659
+
}),
660
+
'node_modules': Dir({
661
+
dep1: Symlink('../dep1')
662
+
})
663
+
}),
664
+
'rmesymlink': Dir({
665
+
'package.json': File({
666
+
name: 'remove-behavior',
667
+
version: '1.0.0',
668
+
dependencies: {
669
+
edep1: 'file:../edep1',
670
+
}
671
+
}),
672
+
'package-lock.json': File({
673
+
name: 'remove-behavior',
674
+
version: '1.0.0',
675
+
lockfileVersion: 1,
676
+
requires: true,
677
+
dependencies: {
678
+
edep1: {
679
+
version: 'file:../edep1',
680
+
requires: {
681
+
edep2: 'file:../edep2'
682
+
},
683
+
dependencies: {
684
+
edep2: {
685
+
version: 'file:../edep2',
686
+
bundled: true
687
+
}
688
+
}
689
+
}
690
+
}
691
+
}),
692
+
'node_modules': Dir({
693
+
edep1: Symlink('../../edep1')
694
+
})
695
+
}),
696
+
edep1: Dir({
697
+
'package.json': File({
698
+
name: 'edep1',
699
+
version: '1.0.0',
700
+
dependencies: {
701
+
edep2: 'file:../edep2'
702
+
}
703
+
}),
704
+
'node_modules': Dir({
705
+
edep2: Symlink('../../edep2')
706
+
})
707
+
}),
708
+
edep2: Dir({
709
+
'package.json': File({
710
+
name: 'edep2',
711
+
version: '1.0.0'
712
+
})
713
+
}),
714
+
})
715
+
612
716
test('removal', function (t) {
613
-
t.plan(3)
614
-
t.test('should remove the symlink')
615
-
t.test('should not remove the transitive deps if it was not a `link:` type specifier.')
616
-
t.test("should not remove transitive deps if it's outside the package and --preserver-symlinks isn't set")
717
+
t.plan(2)
718
+
719
+
t.test('should remove the symlink', t => {
720
+
const rmconf = {cwd: `${rmdir}/rmsymlink`, env: conf.env, stdio: conf.stdio}
721
+
return common.npm(['uninstall', 'dep1'], rmconf).spread((code, stdout) => {
722
+
t.is(code, 0, 'uninstall ran ok')
723
+
t.comment(stdout)
724
+
noFileExists(t, `${rmdir}/rmsymlink/node_modules/dep1`, 'removed symlink')
725
+
noFileExists(t, `${rmdir}/rmsymlink/dep1/node_modules/dep2`, 'removed transitive dep')
726
+
fileExists(t, `${rmdir}/rmsymlink/dep2`, 'original transitive dep still exists')
727
+
})
728
+
})
729
+
t.test("should not remove transitive deps if it's outside the package and --preserver-symlinks isn't set", t => {
730
+
const rmconf = {cwd: `${rmdir}/rmesymlink`, env: conf.env, stdio: conf.stdio}
731
+
return common.npm(['uninstall', 'edep1'], rmconf).spread((code, stdout) => {
732
+
t.is(code, 0, 'uninstall ran ok')
733
+
t.comment(stdout)
734
+
noFileExists(t, `${rmdir}/rmsymlink/node_modules/edep1`, 'removed symlink')
735
+
fileExists(t, `${rmdir}/edep1/node_modules/edep2`, 'did NOT remove transitive dep')
736
+
fileExists(t, `${rmdir}/edep2`, 'original transitive dep still exists')
737
+
})
738
+
})
617
739
})
618
740
619
741
test('misc', function (t) {
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4