[Gradle, JS] Add test for package.json deserializing
This commit is contained in:
+7
-3
@@ -42,9 +42,8 @@ internal class GradleNodeModuleBuilder(
|
|||||||
fun rebuild(): File? {
|
fun rebuild(): File? {
|
||||||
if (files.isEmpty()) return null
|
if (files.isEmpty()) return null
|
||||||
|
|
||||||
val packageJson = srcPackageJsonFile?.reader()?.use {
|
val packageJson = fromSrcPackageJson(srcPackageJsonFile)
|
||||||
Gson().fromJson(it, PackageJson::class.java)
|
?: PackageJson(dependency.moduleName, dependency.moduleVersion)
|
||||||
} ?: PackageJson(dependency.moduleName, dependency.moduleVersion)
|
|
||||||
|
|
||||||
val jsFiles = files.filter { it.name.endsWith(".js") }
|
val jsFiles = files.filter { it.name.endsWith(".js") }
|
||||||
if (jsFiles.size == 1) {
|
if (jsFiles.size == 1) {
|
||||||
@@ -65,6 +64,11 @@ internal class GradleNodeModuleBuilder(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal fun fromSrcPackageJson(packageJson: File?): PackageJson? =
|
||||||
|
packageJson?.reader()?.use {
|
||||||
|
Gson().fromJson(it, PackageJson::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
private val File.isZip
|
private val File.isZip
|
||||||
get() = isFile && (name.endsWith(".jar") || name.endsWith(".zip"))
|
get() = isFile && (name.endsWith(".jar") || name.endsWith(".zip"))
|
||||||
|
|
||||||
|
|||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.targets.js.npm
|
||||||
|
|
||||||
|
import org.junit.Test
|
||||||
|
import java.io.File
|
||||||
|
import kotlin.test.assertNotNull
|
||||||
|
|
||||||
|
class GradleNodeModuleBuilderTest {
|
||||||
|
@Test
|
||||||
|
fun validPackageJsonWithoutDependencies() {
|
||||||
|
val packageJson = fromSrcPackageJson(
|
||||||
|
File("src/test/resources/org/jetbrains/kotlin/gradle/targets/js/npm/GradleNodeModuleBuilderTest/package.json")
|
||||||
|
)
|
||||||
|
assertNotNull(packageJson, "package.json should be deserialized")
|
||||||
|
|
||||||
|
with(packageJson!!) {
|
||||||
|
listOf(
|
||||||
|
dependencies,
|
||||||
|
devDependencies,
|
||||||
|
peerDependencies,
|
||||||
|
optionalDependencies,
|
||||||
|
bundledDependencies
|
||||||
|
).forEach {
|
||||||
|
assertNotNull(it, "Dependencies should deserialized correctly without null")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"name": "npm",
|
||||||
|
"version": "1.0.0"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user