Skip to content

Commit 4f65d8d

Browse files
add
1 parent 7dc67c8 commit 4f65d8d

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

codegen-core/src/test/kotlin/software/amazon/smithy/rust/codegen/core/smithy/generators/BuilderGeneratorTest.kt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,16 @@ import software.amazon.smithy.rust.codegen.core.testutil.TestWorkspace
1818
import software.amazon.smithy.rust.codegen.core.testutil.compileAndTest
1919
import software.amazon.smithy.rust.codegen.core.testutil.testSymbolProvider
2020
import software.amazon.smithy.rust.codegen.core.testutil.unitTest
21+
import kotlin.io.path.extension
22+
import kotlin.io.path.readText
2123

2224
internal class BuilderGeneratorTest {
2325
private val model = StructureGeneratorTest.model
2426
private val inner = StructureGeneratorTest.inner
2527
private val struct = StructureGeneratorTest.struct
2628
private val credentials = StructureGeneratorTest.credentials
2729
private val secretStructure = StructureGeneratorTest.secretStructure
30+
private val errorStruct = StructureGeneratorTest.error
2831

2932
@Test
3033
fun `generate builders`() {
@@ -137,4 +140,30 @@ internal class BuilderGeneratorTest {
137140
}
138141
project.compileAndTest()
139142
}
143+
144+
@Test
145+
fun `don't add serde to error types`() {
146+
val provider = testSymbolProvider(model)
147+
val project = TestWorkspace.testProject(provider)
148+
project.moduleFor(errorStruct) {
149+
rust("##![allow(deprecated)]")
150+
StructureGenerator(model, provider, this, errorStruct, emptyList()).render()
151+
implBlock(provider.toSymbol(errorStruct)) {
152+
BuilderGenerator.renderConvenienceMethod(this, provider, errorStruct)
153+
}
154+
}
155+
project.withModule(provider.moduleForBuilder(errorStruct)) {
156+
BuilderGenerator(model, provider, errorStruct, emptyList()).render(this)
157+
}
158+
project.compileAndTest()
159+
160+
// checks if there is a serde derive in the code
161+
project.generatedFiles().forEach {
162+
if (it.extension == "rs") {
163+
val file = project.baseDir.resolve(it).toFile().readText()
164+
val check = file.contains("derive(serde::Deserialize)") || file.contains("derive(serde::Serialize)")
165+
assert(!check)
166+
}
167+
}
168+
}
140169
}

0 commit comments

Comments
 (0)