Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package tools.samt.config
import com.charleskorn.kaml.*
import kotlinx.serialization.SerializationException
import java.nio.file.Path
import kotlin.io.path.Path
import kotlin.io.path.exists
import kotlin.io.path.inputStream
import tools.samt.common.DiagnosticSeverity as CommonDiagnosticSeverity
Expand Down Expand Up @@ -37,7 +38,8 @@ object SamtConfigurationParser {
SamtConfiguration()
}

val projectDirectory = path.parent
// a single component relative path like "samt.yaml" will return null as parent, fallback to working directory
val projectDirectory = path.parent ?: Path("")

return CommonSamtConfiguration(
source = projectDirectory.resolve(parsedConfiguration.source).normalize(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ package tools.samt.config

import com.charleskorn.kaml.YamlException
import org.junit.jupiter.api.assertThrows
import kotlin.io.path.Path
import kotlin.io.path.exists
import kotlin.io.path.isDirectory
import kotlin.io.path.*
import kotlin.test.BeforeTest
import kotlin.test.Test
import kotlin.test.assertEquals
Expand Down Expand Up @@ -143,4 +141,31 @@ class SamtConfigurationParserTest {
exception.message
)
}

@Test
fun `single component relative path works`() {
val configPath = Path("samt-minimal.yaml")
try {
testDirectory.resolve("samt-minimal.yaml").copyTo(configPath, overwrite = true)
val samtConfiguration = SamtConfigurationParser.parseConfiguration(configPath)
assertEquals(
tools.samt.common.SamtConfiguration(
source = Path("src"),
plugins = emptyList(),
generators = listOf(
tools.samt.common.SamtGeneratorConfiguration(
name = "samt-kotlin-ktor",
output = Path("out"),
options = mapOf(
"addPrefixToKotlinPackage" to "com.company.samt.generated",
)
)
)
),
samtConfiguration
)
} finally {
configPath.deleteIfExists()
}
}
}