Skip to content

Commit 0417fa9

Browse files
committed
chore: add test for package fixtures generator
1 parent f1b371d commit 0417fa9

File tree

3 files changed

+43
-4
lines changed

3 files changed

+43
-4
lines changed

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsPackageFixturesGeneratorIntegration.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,16 @@
1818
import java.util.Calendar;
1919
import java.util.function.BiConsumer;
2020
import java.util.function.Consumer;
21+
import java.util.regex.Pattern;
22+
2123
import software.amazon.smithy.codegen.core.SymbolProvider;
2224
import software.amazon.smithy.model.Model;
2325
import software.amazon.smithy.typescript.codegen.TypeScriptSettings;
2426
import software.amazon.smithy.typescript.codegen.TypeScriptWriter;
2527
import software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration;
2628
import software.amazon.smithy.utils.IoUtils;
2729

28-
public class AwsPackageFixturesGeneratorIntegration implements TypeScriptIntegration {
30+
public final class AwsPackageFixturesGeneratorIntegration implements TypeScriptIntegration {
2931
@Override
3032
public void writeAdditionalFiles(
3133
TypeScriptSettings settings,
@@ -41,14 +43,14 @@ public void writeAdditionalFiles(
4143
String resource = IoUtils.readUtf8Resource(getClass(), "npmignore");
4244
writer.write(resource);
4345
});
44-
writerFactory.accept("LICENCE", writer -> {
45-
String resource = IoUtils.readUtf8Resource(getClass(), "LICENCE.template");
46+
writerFactory.accept("LICENSE", writer -> {
47+
String resource = IoUtils.readUtf8Resource(getClass(), "LICENSE.template");
4648
resource = resource.replace("${year}", Integer.toString(Calendar.getInstance().get(Calendar.YEAR)));
4749
writer.write(resource);
4850
});
4951
writerFactory.accept("README.md", writer -> {
5052
String resource = IoUtils.readUtf8Resource(getClass(), "README.md.template");
51-
resource = resource.replaceAll("\\$\\{packageName\\}", settings.getPackageName());
53+
resource = resource.replaceAll(Pattern.quote("${packageName}"), settings.getPackageName());
5254
writer.write(resource);
5355
});
5456
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package software.amazon.smithy.aws.typescript.codegen;
2+
3+
import org.junit.jupiter.api.Assertions;
4+
import org.junit.jupiter.api.Test;
5+
import software.amazon.smithy.build.MockManifest;
6+
import software.amazon.smithy.build.PluginContext;
7+
import software.amazon.smithy.model.Model;
8+
import software.amazon.smithy.model.node.Node;
9+
import software.amazon.smithy.typescript.codegen.TypeScriptCodegenPlugin;
10+
11+
public class AwsPackageFixturesGeneratorIntegrationTest {
12+
@Test
13+
public void expandsPackageFixtureFiles() {
14+
Model model = Model.assembler()
15+
.addImport(getClass().getResource("serviceid.smithy"))
16+
.discoverModels()
17+
.assemble()
18+
.unwrap();
19+
MockManifest manifest = new MockManifest();
20+
PluginContext context = PluginContext.builder()
21+
.model(model)
22+
.fileManifest(manifest)
23+
.settings(Node.objectNodeBuilder()
24+
.withMember("service", Node.from("smithy.example#OriginalName"))
25+
.withMember("package", Node.from("example"))
26+
.withMember("packageVersion", Node.from("1.0.0"))
27+
.build())
28+
.build();
29+
30+
new TypeScriptCodegenPlugin().execute(context);
31+
32+
Assertions.assertTrue(manifest.hasFile("LICENSE"));
33+
Assertions.assertTrue(manifest.hasFile(".gitignore"));
34+
Assertions.assertTrue(manifest.hasFile(".npmignore"));
35+
Assertions.assertTrue(manifest.hasFile("README.md"));
36+
}
37+
}

0 commit comments

Comments
 (0)