Wizard: fix tests

This commit is contained in:
Ilya Kirillov
2020-01-21 15:41:09 +03:00
parent 217cf3edd1
commit fa4cba341b
24 changed files with 78 additions and 40 deletions
@@ -6,7 +6,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath kotlin('gradle-plugin', '1.3.61')
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61'
}
}
group = 'testGroupId'
@@ -6,7 +6,7 @@ buildscript {
}
dependencies {
classpath("com.android.tools.build:gradle:3.2.1")
classpath(kotlin("gradle-plugin", "1.3.61"))
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61")
}
}
group = "testGroupId"
@@ -1,11 +1,10 @@
kotlin:
version: 1.3.61
projectKind: Multiplatform
modules:
- type:
name: android
androidSdkPath: /home/user/Android/Sdk
kind: singleplatform
kind: singleplatformJvm
name: android
sourcesets:
- type: main
@@ -33,7 +33,9 @@ kotlin {
}
}
browserTest {
dependencies {
implementation kotlin('test-js')
}
}
}
}
@@ -30,6 +30,10 @@ kotlin {
implementation(kotlin("stdlib-js"))
}
}
val browserTest by getting
val browserTest by getting {
dependencies {
implementation(kotlin("test-js"))
}
}
}
}
@@ -1,5 +1,4 @@
kotlin:
version: 1.3.61
projectKind: Multiplatform
modules:
- type: multiplatform
@@ -12,7 +11,9 @@ kotlin:
sourcesets:
- type: main
- type: test
- type: jsBrowser
- type:
name: jsBrowser
testFramework: JS
kind: target
name: browser
sourcesets:
@@ -16,7 +16,9 @@ kotlin {
}
}
jvmTest {
dependencies {
implementation kotlin('test-junit')
}
}
}
}
@@ -15,6 +15,10 @@ kotlin {
implementation(kotlin("stdlib-jdk8"))
}
}
val jvmTest by getting
val jvmTest by getting {
dependencies {
implementation(kotlin("test-junit"))
}
}
}
}
@@ -1,12 +1,13 @@
kotlin:
version: 1.3.61
projectKind: Multiplatform
modules:
- type: multiplatform
kind: multiplatform
name: a
subModules:
- type: jvmTarget
- type:
name: jvmTarget
testFramework: JUNIT4
kind: target
name: jvm
sourcesets:
@@ -8,5 +8,6 @@ repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.jetbrains.kotlin:kotlin-test-junit'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
}
@@ -8,5 +8,6 @@ repositories {
mavenCentral()
}
dependencies {
testImplementation(kotlin("test-junit"))
implementation(kotlin("stdlib-jdk8"))
}
@@ -51,6 +51,12 @@
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test-junit</artifactId>
<version>1.3.61</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
@@ -1,10 +1,11 @@
kotlin:
version: 1.3.61
projectKind: Singleplatform
modules:
- type: JVM Module
- type:
name: JVM Module
testFramework: JUNIT4
name: nya
kind: singleplatform
kind: singleplatformJvm
sourcesets:
- type: main
@@ -12,10 +12,10 @@ repositories {
kotlin {
def hostOs = System.getProperty("os.name")
def isMingwX64 = hostOs.startsWith("Windows")
KotlinNativeTargetWithTests nativeTarget
if (hostOs == "Mac OS X") nativeTarget = macosX64('myNative')
else if (hostOs == "Linux") nativeTarget = linuxX64("myNative")
else if (isMingwX64) nativeTarget = mingwX64("myNative")
KotlinNativeTargetWithTests myNativeTarget
if (hostOs == "Mac OS X") myNativeTarget = macosX64('myNative')
else if (hostOs == "Linux") myNativeTarget = linuxX64("myNative")
else if (isMingwX64) myNativeTarget = mingwX64("myNative")
else throw new GradleException("Host OS is not supported in Kotlin/Native.")
@@ -10,7 +10,7 @@ repositories {
kotlin {
val hostOs = System.getProperty("os.name")
val isMingwX64 = hostOs.startsWith("Windows")
val nativeTarget = when {
val myNativeTarget = when {
hostOs == "Mac OS X" -> macosX64("myNative")
hostOs == "Linux" -> linuxX64("myNative")
isMingwX64 -> mingwX64("myNative")
@@ -1,5 +1,4 @@
kotlin:
version: 1.3.61
projectKind: Multiplatform
modules:
- type: multiplatform
@@ -21,7 +21,9 @@ kotlin {
}
}
jvmTest {
dependencies {
implementation kotlin('test-junit')
}
}
aMain {
dependencies {
@@ -29,7 +31,9 @@ kotlin {
}
}
aTest {
dependencies {
implementation kotlin('test-js')
}
}
}
}
@@ -20,12 +20,20 @@ kotlin {
implementation(kotlin("stdlib-jdk8"))
}
}
val jvmTest by getting
val jvmTest by getting {
dependencies {
implementation(kotlin("test-junit"))
}
}
val aMain by getting {
dependencies {
implementation(kotlin("stdlib-js"))
}
}
val aTest by getting
val aTest by getting {
dependencies {
implementation(kotlin("test-js"))
}
}
}
}
@@ -1,18 +1,21 @@
kotlin:
version: 1.3.61
projectKind: Multiplatform
modules:
- type: multiplatform
kind: multiplatform
name: a
subModules:
- type: jvmTarget
- type:
name: jvmTarget
testFramework: JUNIT4
kind: target
name: jvm
sourcesets:
- type: main
- type: test
- type: jsBrowser
- type:
name: jsBrowser
testFramework: JS
kind: target
name: a
sourcesets:
@@ -1,5 +1,4 @@
kotlin:
version: 1.3.61
projectKind: Multiplatform
modules:
- type: multiplatform
@@ -14,18 +14,18 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind
abstract class JSConfigurator : ModuleConfiguratorWithTests() {
interface JSConfigurator : ModuleConfigurator {
override val moduleType: ModuleType get() = ModuleType.js
override fun defaultTestFramework(): KotlinTestFramework = KotlinTestFramework.JS
}
object JsSingleplatformModuleConfigurator : JSConfigurator() {
object JsSingleplatformModuleConfigurator : JSConfigurator, ModuleConfiguratorWithTests() {
override val moduleKind = ModuleKind.singleplatformJs
override val suggestedModuleName = "js"
override val id = "jsSinglepaltform"
override val text = "JS for Browser"
override fun defaultTestFramework(): KotlinTestFramework = KotlinTestFramework.JS
override val canContainSubModules = false
override fun createKotlinPluginIR(configurationData: ModuleConfigurationData, module: Module): KotlinBuildSystemPluginIR? =
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators
import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext
import org.jetbrains.kotlin.tools.projectWizard.core.entity.ModuleConfiguratorSetting
import org.jetbrains.kotlin.tools.projectWizard.core.entity.ModuleConfiguratorSettingReference
import org.jetbrains.kotlin.tools.projectWizard.core.entity.TemplateSettingReference
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.DependencyType
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.KotlinArbitraryDependencyIR
@@ -21,7 +20,7 @@ import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind
abstract class ModuleConfiguratorWithTests : ModuleConfiguratorWithSettings() {
val framework by enumSetting<KotlinTestFramework>(
val testFramework by enumSetting<KotlinTestFramework>(
"Test Framework",
neededAtPhase = GenerationPhase.PROJECT_GENERATION
) {
@@ -39,7 +38,7 @@ abstract class ModuleConfiguratorWithTests : ModuleConfiguratorWithSettings() {
override fun ValuesReadingContext.createModuleIRs(configurationData: ModuleConfigurationData, module: Module): List<BuildSystemIR> =
withSettingsOf(module) {
framework.reference.settingValue.dependencyNames.map { dependencyName ->
testFramework.reference.settingValue.dependencyNames.map { dependencyName ->
KotlinArbitraryDependencyIR(
dependencyName,
isInMppModule = module.kind
@@ -50,7 +49,7 @@ abstract class ModuleConfiguratorWithTests : ModuleConfiguratorWithSettings() {
}
}
override val settings: List<ModuleConfiguratorSetting<*, *>> = listOf(framework)
override val settings: List<ModuleConfiguratorSetting<*, *>> = listOf(testFramework)
}
@@ -51,13 +51,15 @@ private fun Module.createTargetAccessIr(moduleSubType: ModuleSubType) =
)
abstract class JsTargetConfigurator : JSConfigurator(), TargetConfigurator, SingleCoexistenceTargetConfigurator
interface JsTargetConfigurator : JSConfigurator, TargetConfigurator, SingleCoexistenceTargetConfigurator
object JsBrowserTargetConfigurator : JsTargetConfigurator() {
object JsBrowserTargetConfigurator : JsTargetConfigurator, ModuleConfiguratorWithTests() {
override val id = "jsBrowser"
override val text = "Browser"
override val suggestedModuleName = "browser"
override fun defaultTestFramework(): KotlinTestFramework = KotlinTestFramework.JS
override fun createTargetIrs(module: Module): List<BuildSystemIR> = buildList {
+DefaultTargetConfigurationIR(
module.createTargetAccessIr(ModuleSubType.js),
@@ -70,7 +72,7 @@ object JsBrowserTargetConfigurator : JsTargetConfigurator() {
}
}
object JsNodeTargetConfigurator : JsTargetConfigurator() {
object JsNodeTargetConfigurator : JsTargetConfigurator {
override val id = "jsNode"
override val text = "Node.js"
override val suggestedModuleName = "nodeJs"
@@ -37,6 +37,7 @@ class Module(
withSettingsOf(module) {
configurator.settings.map { setting ->
val value = setting.reference.notRequiredSettingValue
?: setting.defaultValue
?: return@map ValidationResult.ValidationError("${setting.title.capitalize()} should not be blank")
setting.validator.validate(this@settingValidator, value)
}.fold()
@@ -46,6 +47,7 @@ class Module(
org.jetbrains.kotlin.tools.projectWizard.templates.withSettingsOf(module) {
template.settings.map { setting ->
val value = setting.reference.notRequiredSettingValue
?: setting.defaultValue
?: return@map ValidationResult.ValidationError("${setting.title.capitalize()} should not be blank")
setting.validator.validate(this@settingValidator, value)
}.fold()