|
14 | 14 | import software.amazon.smithy.model.shapes.IntEnumShape;
|
15 | 15 | import software.amazon.smithy.model.shapes.ListShape;
|
16 | 16 | import software.amazon.smithy.model.shapes.MemberShape;
|
| 17 | +import software.amazon.smithy.model.shapes.ResourceShape; |
17 | 18 | import software.amazon.smithy.model.shapes.Shape;
|
18 | 19 | import software.amazon.smithy.model.shapes.ShapeId;
|
19 | 20 | import software.amazon.smithy.model.shapes.StringShape;
|
@@ -249,4 +250,30 @@ public void omitsUnknownNumberIntEnumVariant() {
|
249 | 250 | assertThat(memberSymbol.getName(), equalTo("Foo"));
|
250 | 251 | }
|
251 | 252 |
|
| 253 | + @Test |
| 254 | + public void placesResourceShapeIntoInitialBucket() { |
| 255 | + Shape shape1 = StructureShape.builder().id("com.foo#Hello").build(); |
| 256 | + Shape shape2 = ResourceShape.builder().id("com.foo.baz#Hello").build(); |
| 257 | + Model model = Model.assembler() |
| 258 | + .addImport(getClass().getResource("simple-service.smithy")) |
| 259 | + .addShapes(shape1, shape2) |
| 260 | + .assemble() |
| 261 | + .unwrap(); |
| 262 | + TypeScriptSettings settings = TypeScriptSettings.from(model, Node.objectNodeBuilder() |
| 263 | + .withMember("package", Node.from("example")) |
| 264 | + .withMember("packageVersion", Node.from("1.0.0")) |
| 265 | + .build()); |
| 266 | + SymbolProvider provider = new SymbolVisitor(model, settings, 1); |
| 267 | + Symbol symbol1 = provider.toSymbol(shape1); |
| 268 | + Symbol symbol2 = provider.toSymbol(shape2); |
| 269 | + MockManifest manifest = new MockManifest(); |
| 270 | + SymbolVisitor.writeModelIndex(Arrays.asList(shape1, shape2), provider, manifest); |
| 271 | + |
| 272 | + assertThat(symbol1.getNamespace(), equalTo("./" + CodegenUtils.SOURCE_FOLDER + "/models/models_0")); |
| 273 | + assertThat(symbol1.getDefinitionFile(), equalTo("./" + CodegenUtils.SOURCE_FOLDER + "/models/models_0.ts")); |
| 274 | + assertThat(symbol2.getNamespace(), equalTo("./" + CodegenUtils.SOURCE_FOLDER + "/models/models_0")); |
| 275 | + assertThat(symbol2.getDefinitionFile(), equalTo("./" + CodegenUtils.SOURCE_FOLDER + "/models/models_0.ts")); |
| 276 | + assertThat(manifest.getFileString(CodegenUtils.SOURCE_FOLDER + "/models/index.ts").get(), |
| 277 | + containsString("export * from \"./models_0\";")); |
| 278 | + } |
252 | 279 | }
|
0 commit comments