[Gradle, JS] Add test for package.json deserializing

This commit is contained in:
Ilya Goncharov
2019-12-12 11:05:06 +03:00
parent b9a529d7d0
commit 1bc47b3f6f
3 changed files with 43 additions and 3 deletions
@@ -42,9 +42,8 @@ internal class GradleNodeModuleBuilder(
fun rebuild(): File? {
if (files.isEmpty()) return null
val packageJson = srcPackageJsonFile?.reader()?.use {
Gson().fromJson(it, PackageJson::class.java)
} ?: PackageJson(dependency.moduleName, dependency.moduleVersion)
val packageJson = fromSrcPackageJson(srcPackageJsonFile)
?: PackageJson(dependency.moduleName, dependency.moduleVersion)
val jsFiles = files.filter { it.name.endsWith(".js") }
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
get() = isFile && (name.endsWith(".jar") || name.endsWith(".zip"))
@@ -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")
}
}
}
}