Skip to content

Commit

Permalink
fix parent processing + added a test for it
Browse files Browse the repository at this point in the history
  • Loading branch information
nulls committed Aug 29, 2022
1 parent fa9ef3e commit f351e7d
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ fun TestConfig.processInPlace() = processInPlace {
* @return [this] config with all descendants being evaluated (`pluginConfigs` are filled with data and merged with parents)
*/
fun TestConfig.processWithParentsInPlace(): TestConfig {
parentConfig?.processInPlace()
parentConfig?.processWithParentsInPlace()
return processInPlace()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,16 @@ package com.saveourtool.save.core
import com.saveourtool.save.core.config.TestConfig
import com.saveourtool.save.core.config.resolveSaveOverridesTomlConfig
import com.saveourtool.save.core.config.resolveSaveTomlConfig
import com.saveourtool.save.core.files.createFile
import com.saveourtool.save.core.files.fs
import com.saveourtool.save.core.plugin.GeneralConfig
import com.saveourtool.save.core.plugin.PluginConfig
import com.saveourtool.save.core.utils.createPluginConfigListFromToml
import com.saveourtool.save.core.utils.mergeWith
import com.saveourtool.save.core.utils.overrideBy
import com.saveourtool.save.core.utils.processWithParentsInPlace
import com.saveourtool.save.core.utils.singleIsInstance
import com.saveourtool.save.createTempDir
import com.saveourtool.save.plugin.warn.WarnPluginConfig
import com.saveourtool.save.plugins.fix.FixPluginConfig

Expand Down Expand Up @@ -455,4 +458,57 @@ class MergeAndOverrideConfigsTest {
),
result.singleIsInstance())
}

@Test
fun `load save toml from middle hierarchy`() {
val tmpDir = fs.createTempDir()
val generalConfig1 = GeneralConfig(
execCmd = "execCmd"
)
val testConfig1 = TestConfig(
location = tmpDir.resolveSaveTomlConfig()
.also { fs.createFile(it) },
parentConfig = null,
pluginConfigs = mutableListOf(
generalConfig1
),
overridesPluginConfigs = emptyList(),
fs = fs
)
val testConfig2 = TestConfig(
location = tmpDir.resolve("sub-folder")
.also { fs.createDirectories(it) }
.resolveSaveTomlConfig()
.also { fs.createFile(it) },
parentConfig = testConfig1,
pluginConfigs = mutableListOf(),
overridesPluginConfigs = emptyList(),
fs = fs
)
val testConfig3 = TestConfig(
location = tmpDir.resolve("sub-folder").resolve("sub-sub-folder")
.also { fs.createDirectories(it) }
.resolveSaveTomlConfig()
.also { fs.createFile(it) },
parentConfig = testConfig2,
pluginConfigs = mutableListOf(),
overridesPluginConfigs = emptyList(),
fs = fs
)
val testConfig4 = TestConfig(
location = tmpDir.resolve("sub-folder").resolve("sub-sub-folder").resolve("sub-sub-sub-folder")
.also { fs.createDirectories(it) }
.resolveSaveTomlConfig()
.also { fs.createFile(it) },
parentConfig = testConfig3,
pluginConfigs = mutableListOf(),
overridesPluginConfigs = emptyList(),
fs = fs
)

testConfig4.processWithParentsInPlace()

assertEquals(generalConfig1, testConfig4.getGeneralConfig())
fs.deleteRecursively(tmpDir)
}
}

0 comments on commit f351e7d

Please sign in to comment.