File tree 3 files changed +35
-2
lines changed
main/kotlin/com/github/gradle/node/task
test/groovy/com/github/gradle
3 files changed +35
-2
lines changed Original file line number Diff line number Diff line change @@ -56,7 +56,9 @@ abstract class NodeSetupTask : BaseTask() {
56
56
57
57
private fun deleteExistingNode () {
58
58
projectHelper.delete {
59
- delete(nodeDir.get().dir(" ../" ))
59
+ delete(nodeDir.get().dir(" ../" ).asFileTree.matching {
60
+ include(" node-v*/**" )
61
+ })
60
62
}
61
63
}
62
64
Original file line number Diff line number Diff line change @@ -61,10 +61,11 @@ abstract class AbstractIntegTest extends Specification {
61
61
return new File (temporaryFolder. getRoot(), name)
62
62
}
63
63
64
- protected final void writeFile (final String name , final String text ) {
64
+ protected final File writeFile (final String name , final String text ) {
65
65
File file = createFile(name)
66
66
file. parentFile. mkdirs()
67
67
file << text
68
+ return file
68
69
}
69
70
70
71
protected final void writePackageJson (final String text ) {
Original file line number Diff line number Diff line change @@ -47,4 +47,34 @@ node {
47
47
gv << GRADLE_VERSIONS_UNDER_TEST
48
48
}
49
49
50
+ def 'nodeSetup should only delete old node versions (#gv.version)'() {
51
+ given:
52
+ gradleVersion = gv
53
+
54
+ def badVersion = "node-v18.17.0"
55
+ def goodVersion = "18.17.1"
56
+ createFile("build.gradle") << """plugins {
57
+ id "com.github.node-gradle.node"
58
+ }
59
+
60
+ node {
61
+ version = "${goodVersion}"
62
+ download = true
63
+ workDir = file("build/node")
64
+ }"""
65
+ def badFile = writeFile("build/node/$badVersion/bin/node.js", "console.log(\" bad\" );")
66
+ def goodFile = writeFile("build/node/important.txt", "should not be deleted by nodeSetup")
67
+
68
+ when:
69
+ def result1 = build("nodeSetup")
70
+
71
+ then:
72
+ result1.task(":nodeSetup").outcome == TaskOutcome.SUCCESS
73
+ !badFile.exists()
74
+ goodFile.exists()
75
+
76
+ where:
77
+ gv << GRADLE_VERSIONS_UNDER_TEST
78
+ }
79
+
50
80
}
You can’t perform that action at this time.
0 commit comments