Skip to content

Commit

Permalink
#67 Add some small improvements. Do not download Node.js when it is n…
Browse files Browse the repository at this point in the history
…ot necessary.
  • Loading branch information
bsautel committed Apr 7, 2021
1 parent 93aefc2 commit e9542d7
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 74 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ class PnpmInstall_integTest
}
node {
download = true
workDir = file('build/node')
pnpmWorkDir = file('build/pnpm')
}
Expand All @@ -26,15 +25,15 @@ class PnpmInstall_integTest
def result = build( 'pnpmInstall' )

then:
result.task(":nodeSetup").outcome == TaskOutcome.SUCCESS
result.task(":nodeSetup").outcome == TaskOutcome.SKIPPED
result.task(":pnpmSetup").outcome == TaskOutcome.SUCCESS
result.task(":pnpmInstall").outcome == TaskOutcome.SUCCESS

when:
result = build( 'pnpmInstall' )

then:
result.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result.task(":nodeSetup").outcome == TaskOutcome.SKIPPED
result.task(":pnpmSetup").outcome == TaskOutcome.UP_TO_DATE
// because pnpm-lock.yaml is created only when needed
result.task(":pnpmInstall").outcome == TaskOutcome.UP_TO_DATE
Expand All @@ -49,7 +48,6 @@ class PnpmInstall_integTest
id 'com.github.node-gradle.node'
}
node {
download = true
workDir = file('build/node')
pnpmWorkDir = file('build/pnpm')
}
Expand All @@ -66,15 +64,15 @@ class PnpmInstall_integTest
def result = build( 'pnpmInstall', '--info' )

then:
result.task(":nodeSetup").outcome == TaskOutcome.SUCCESS
result.task(":nodeSetup").outcome == TaskOutcome.SKIPPED
result.task(":pnpmSetup").outcome == TaskOutcome.SUCCESS
result.task(":pnpmInstall").outcome == TaskOutcome.SUCCESS

when:
result = build( 'pnpmInstall' )

then:
result.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result.task(":nodeSetup").outcome == TaskOutcome.SKIPPED
result.task(":pnpmSetup").outcome == TaskOutcome.UP_TO_DATE
result.task(":pnpmInstall").outcome == TaskOutcome.UP_TO_DATE

Expand All @@ -89,7 +87,6 @@ class PnpmInstall_integTest
}
node {
download = true
workDir = file('build/node')
pnpmWorkDir = file('build/pnpm')
nodeModulesDir = file('subdirectory')
Expand Down Expand Up @@ -117,7 +114,6 @@ class PnpmInstall_integTest
}
node {
download = true
workDir = file('build/node')
npmInstallCommand = 'install'
}
Expand Down Expand Up @@ -151,7 +147,6 @@ class PnpmInstall_integTest
}
node {
download = true
workDir = file('build/node')
pnpmWorkDir = file('build/pnpm')
}
Expand Down Expand Up @@ -218,7 +213,6 @@ class PnpmInstall_integTest
}
node {
download = true
workDir = file('build/node')
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,54 +6,46 @@ import org.gradle.testkit.runner.TaskOutcome
import java.util.regex.Pattern

class PnpmRule_integTest extends AbstractIntegTest {
def 'execute pnpm_install rule'()
{
def 'execute pnpm_install rule'() {
given:
writeBuild( '''
writeBuild('''
plugins {
id 'com.github.node-gradle.node'
}
node {
download = true
workDir = file('build/node')
}
''' )
''')
writeEmptyPackageJson()

when:
def result = buildTask( 'pnpm_install' )
def result = buildTask('pnpm_install')

then:
result.outcome == TaskOutcome.SUCCESS
}

def 'Use downloaded pnpm version'()
{
def 'Use downloaded pnpm version'() {
given:
writeBuild( '''
writeBuild('''
plugins {
id 'com.github.node-gradle.node'
}
node {
download = true
pnpmVersion = '4.12.4'
}
''' )
''')
writeEmptyPackageJson()

when:
def result = build( 'pnpm_--version' )
def result = build('pnpm_--version')

then:
result.task(':pnpm_--version').outcome == TaskOutcome.SUCCESS
result.output =~ /\n4\.12\.4\n/
result.task( ':pnpm_--version' ).outcome == TaskOutcome.SUCCESS
}

def 'Use local pnpm installation'()
{
def 'Use local pnpm installation'() {
given:
writeBuild( '''
writeBuild('''
plugins {
id 'com.github.node-gradle.node'
}
Expand All @@ -64,54 +56,44 @@ class PnpmRule_integTest extends AbstractIntegTest {
writeEmptyPackageJson()

when:
build( '[email protected]' )
def result = build( 'pnpm_--version' )
build('[email protected]')
def result = build('pnpm_--version')

then:
result.output =~ /\n4\.12\.1\n/
result.task( ':pnpm_--version' ).outcome == TaskOutcome.SUCCESS
result.task(':pnpm_--version').outcome == TaskOutcome.SUCCESS
}

def 'can execute an pnpm module using pnpm_run_'()
{
def 'can execute an pnpm module using pnpm_run_'() {
given:
writeBuild( '''
writeBuild('''
plugins {
id 'com.github.node-gradle.node'
}
''')

node {
download = true
}
''' )

copyResources( 'fixtures/npm-missing/package.json', 'package.json' )
copyResources('fixtures/npm-missing/package.json', 'package.json')

when:
def result = buildTask( 'pnpm_run_echoTest' )
def result = buildTask('pnpm_run_echoTest')

then:
result.outcome == TaskOutcome.SUCCESS
fileExists( 'test.txt' )
fileExists('test.txt')
}

def 'succeeds to run pnpm module using pnpm_run_ when the package.json file contains local pnpm'()
{
def 'succeeds to run pnpm module using pnpm_run_ when the package.json file contains local pnpm'() {
given:
writeBuild( '''
writeBuild('''
plugins {
id 'com.github.node-gradle.node'
}
''')

node {
download = true
}
''' )

copyResources( 'fixtures/pnpm-present/' )
copyResources('fixtures/pnpm-present/')

when:
def result = build( 'pnpm_run_pnpmVersion' )
def result = build('pnpm_run_pnpmVersion')

then:
result.task(":pnpmInstall").outcome == TaskOutcome.SUCCESS
Expand All @@ -120,17 +102,13 @@ class PnpmRule_integTest extends AbstractIntegTest {
versionPattern.matcher(result.output).find()
}

def 'can execute subtasks using pnpm'()
{
def 'can execute subtasks using pnpm'() {
given:
writeBuild( '''
writeBuild('''
plugins {
id 'com.github.node-gradle.node'
}
node {
download = true
}
''' )
''')
writePackageJson(""" {
"name": "example",
"dependencies": {},
Expand All @@ -143,42 +121,40 @@ class PnpmRule_integTest extends AbstractIntegTest {
""")

when:
def result = buildTask( 'pnpm_run_parent' )
def result = buildTask('pnpm_run_parent')

then:
result.outcome == TaskOutcome.SUCCESS
fileExists( 'parent1.txt' )
fileExists( 'child1.txt' )
fileExists( 'child2.txt' )
fileExists( 'parent2.txt' )
fileExists('parent1.txt')
fileExists('child1.txt')
fileExists('child2.txt')
fileExists('parent2.txt')
}

def 'Custom workingDir'()
{
def 'Custom workingDir'() {
given:
writeBuild( '''
writeBuild('''
plugins {
id 'com.github.node-gradle.node'
}
node {
download = true
pnpmVersion = '4.12.4'
nodeModulesDir = file("frontend")
}
''' )
writeFile( 'frontend/package.json', """{
''')
writeFile('frontend/package.json', """{
"name": "example",
"dependencies": {},
"scripts": {
"whatVersion": "pnpm --version"
}
}""" )
}""")

when:
def result = build( 'pnpm_run_whatVersion' )
def result = build('pnpm_run_whatVersion')

then:
result.task(':pnpm_run_whatVersion').outcome == TaskOutcome.SUCCESS
result.output =~ /\n4\.12\.4\n/
result.task( ':pnpm_run_whatVersion' ).outcome == TaskOutcome.SUCCESS
}
}
2 changes: 2 additions & 0 deletions src/test/resources/fixtures/kotlin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,14 @@ node {
version.set("12.18.3")
npmVersion.set("")
yarnVersion.set("")
pnpmVersion.set("")
npmInstallCommand.set("install")
distBaseUrl.set("https://nodejs.org/dist")
download.set(false)
workDir.set(file("${project.projectDir}/.cache/nodejs"))
npmWorkDir.set(file("${project.projectDir}/.cache/npm"))
yarnWorkDir.set(file("${project.projectDir}/.cache/yarn"))
pnpmWorkDir.set(file("${project.projectDir}/.cache/pnpm"))
nodeProjectDir.set(file("${project.projectDir}"))
nodeProxySettings.set(ProxySettings.SMART)
}
Expand Down

0 comments on commit e9542d7

Please sign in to comment.